phpChrystal :: SDK :: Template-Erstellung
1. Einführung
Ein großes Feature von phpChrystal ist, dass man mit einem Mausklick verschiedene Themes aktivieren kann, die dann sofort das Darstellungsbild des kompletten Intranetsystems ändern.
Dementsprechend besitzt du die Möglichkeit, dass du das Design deiner Website (z.B. die deines Clans) als Vorlage für das Intranetsystem verwendest.
Damit dies gelingen kann, brauchst du keine PHP-, XML- oder JavaScript-Kenntnisse, sondern musst nur etwas von HTML und Stylesheets verstehen.
2. Must-Have
Zuersteinmal musst du im Ordner /templates einen weiteren Unterordner mit dem Namen deines Themes bzw. der Adresse deiner Website erstellen. Wichtig ist dabei, dass der Unterordner mit "sites." beginnt. Dies kennzeichnet den Ordner als Vorlage für Themes. Im Endeffekt existiert nun z.B. ein Ordner /templates/sites.net.myclanpage.

In diesem Ordner müssen mindestens die folgenden drei Dateien existieren:

  • pref.xml - Diese Datei enthält alle wichtigen Einstellungen für das Design
  • my.header - Diese Datei enthält z.B. JavaScript-, oder zusätzlichen Meta-Code
  • my.body - Diese Datei beinhaltet den restlichen HTML-Code, der auf der Seite eingebunden wird.
Noch eine Anmerkung zu JavaScript-Dateien: Diese sollten möglichst in das Verzeichnis /scripts entpackt werden, da so die Pfad-Angaben nicht weiter angepasst werden müssen.
3. pref.xml
Wie schon oben gesagt, enthält die Datei pref.xml alle wichtigen Einstellungen die das Design und den Autor betreffen.
Am einfachsten machst du es dir, wenn du dir diese Datei in dein /template/sites.net.myclanpage-Ordner kopierst, und die jeweiligen Stellen ersetzt.
Nun aber die Beschreibung zu den einzelnen Tags
descBeschreibung des Themes
versionVersion des Themes
url_designFalls der Theme aus dem Internet übernommen wurde, wird hier die Adresse der Website eingetragen
authorDer Entwickler dieses Themes
url_authorDie Homepage des Entwicklers
js_based(0|1) Legt fest, ob im Theme Javascript-Code eingebunden ist
sep_preSeperator vor den einzelnen Linktexten. Dieser Seperator wird in das <a>-Tag eingeschlossen
sep_postSeperator nach den einzelnen Linktexten. Dieser Seperator wird in das <a>-Tag eingeschlossen
sep_normalSeperator zwischen einzelnen Links. Dieser Seperator wird NICHT in das <a-Tag eingeschlossen
subjectÜberschrift der Website
bannerPfad zur Banner-Datei. Falls leer, wird das originale Chrystal-Banner verwendet
Für den Fall, dass du bei <sep_normal> ein HTML-Tag einbinden willst, und nicht mit CDATA arbeiten willst, kannst du stattdessen folgendes Macro verwenden:
		    XML::XML2HTML (p)
		  
Dies würde z.B. dafür sorgen, dass zwischen den einzelnen Links ein Absatz (<p>) erscheinen würde.
3. my.header
In der my.header wird, wie schon erwähnt, zusätzlicher HTML-Code oder Meta-Tags eingetragen. So kann man z.B. dynamische Effekte mittels Javascript erzielen. Die folgende Tabelle zeigt die möglichen Macros, die ersetzt werden (diese Macros müssen von Kommentaren (<--Mein_Macro-->) eingschlossen werden).
XML::SITE::TITELWird durch den Titel der Seite ersetzt
XML::SITE::METAWird durch die Meta-Tags von phpChrystal ersetzt
XML::SITE::JAVAWird durch die JavaScript-Tags von phpChrystal ersetzt
XML::SITE::CSSWird mit der aktuellen CSS-Datei ersetzt
4. my.body
Hier die Macros, die in der my.body verfügbar sind
XML::SITE::BANNER::CHRYSTALWird durch das Chrystal-Logo ersetzt
XML::SITE::H1Wird durch die Überschrift von phpChrystal ersetzt
XML::SITE::QUICKINFOWird durch die Quickinfoleiste von phpChrystal ersetzt
XML::SITE::NAVIGATWird mit der Naviagtionsleiste ersetzt
Wichtig an dieser Datei ist, dass ab deren Ende der von phpChrystal erzeugte HTML-Code eingefügt wird. Deshalb sollten etwaige DIV-Layer oder Tabellenköpfe nicht geschlossen werden.