Skip to content

Doc profilefields

KoernerWS edited this page Sep 2, 2011 · 1 revision

Das neue Profilfeld-System

Mit der neuen Ilch-Version 1.2 kommt auch ein neues Profilfeld-System. Mit dem alten System waren nur Eingaben vom Typ "Text" möglich. Dies hatte zur Folge, das die Profile relativ langweilig daherkamen. Mit dem neuen System können unter anderem folgende Profilfeld-Typen erstellt werden:

 * Ja/Nein Eingaben
 * Comboboxen
 * Dropdown Menüs
 * oder sogar so abgefahrene Dinge wie Slider, Color- und Datepicker etc.

Schritt 1: Allgemeines

Das neue Profilfeld-System ist durchwegs objektorientiert. Dir sollten also Begriffe wie Klasse, Abstraktion oder Vererbung nicht unbekannt sein. Wenn doch, dann lies dich doch auf Wikipedia und php.net etwas ein. Aber keine Angst, wir werden die Erstellung eines Profilfeldtyps Schritt für Schritt durchgehen, sodass du praktisch gar keine Kenntnisse in der objektorientierten Programmierung brauchst, um einen eigenen Profilfeldtyp zu erstellen.

Die Klassen für die Profilfeldtypen liegen im Verzeichne include/includes/class/profilefield_types. Jeweils ein Profilfeldtyp ist in einer Datei untergebracht. Diese Datei muss profilefield_type_{func} heißen, damit das System die Datei erkennt. Für {func} kannst du grundsätzlich eine beliebige Zahl wählen, solange sie noch nicht von einer Datei belegt ist. func ist somit so etwas wie eine eindeutige Id für diesen Profilfeld-Typ.

In diesem Ordner befindet sich auch die Klasse AbstractProfileFieldType. Diese beschreibt die Abstraktion, also die Schnittstelle die die einzelnen Profilfeldtypen benutzen können. Wenn du dich direkt in den Code stürzen willst, schau einfach mal in diese Klasse hinein. Du wirst viele Funktionen in dieser Klasse finden, aber die meisten sind einfach leer. Dies hat einen einfachen Grund: Es liegt an den einzelnen Implementierungen dieser Abstraktion (also den jeweiligen Profilfeldtypen), diese Funktionen zu überschreiben. Um genau zu erfahren, wie das geht, lies weiter!

Schritt 2: Den Typ für ein Ja/Nein Feld erstellen

TODO

Schritt 3: Erweiterte Features / Stacking

TODO

Vorübergehend dienen die Kommentare + der Sourcecode von include/includes/class/profilefieldregistry.php und include/includes/class/profilefield_types/AbstractProfileFieldType.php als Dokumentation, bis hier mehr steht.