-
Notifications
You must be signed in to change notification settings - Fork 12
Doc profilefields
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.