{PROJECT} ../../template/doc.de.ini {ROBOTS}INDEX, FOLLOW {DESCRIPTION}Welche Variablen können in der Projektdatei gesetzt werden, wozu dient diese Datei und wasmuß man damit tun? {MENU} 00.06.02 {TITEL} Projektdatei {CONTENT}

Die Projektdatei ist die Steuerzentrale eines neuen Seitentypes. In ihr sind alle relevanten Pfade verzeichnet, die für das Parsen einer Content-Seite erforderlich sind. In der ersten Version von phpCMS habe ich diese Informationen entweder in der Content-Seite selbst, im Template oder beim Aufruf übergeben. Daniel Werner hat mich dann darauf hingewiesen, daß eine solche Übergabe ein Sicherheitsrisiko darstellt. Aus diesem Grund bin ich dazu übergegangen, alle relevanten Informationen in einer eigenen Datei - der Projektdatei - abzulegen.

Projektdateien sind normale Textdateien, die mit jedem Texteditor bearbeitet werden können. Ich habe mir angewöhnt, die Projektdateien meiner Seiten immer auf ".ini" enden zu lassen. Ihr könnt aber natürlich beliebige Endungen für Eure Projektdateien vergeben.

Eine Projektdatei kann z.B. so aussehen:

; name of the field := value of the field HOME := /homepage TAGS := $home/template/home.tag TEMPLATE := $home/template/home.tpl MENU := $home/template/home.mnu MENUTEMPLATE := $home/template/home.mtpl

Steht ein Semikolon (;) am Anfang einer Zeile, wird die gesamte Zeile als Kommentar interpretiert und vom Parser nicht beachtet. Ihr könnt beliebig viele Kommentarzeilen einfügen.

Achtung: Innerhalb einer Inhaltszeile sind Kommentare nicht erlaubt!

Links steht immer der Feldname, gefolgt von dem Trennzeichen ":=" und dem eigentlichen Feldinhalt. Ihr könnt eine Projektdatei in beliebig vielen Content-Dateien referenzieren.

- HOME
  Gibt den Pfad zu jenem Verzeichnis an, unter dem alle Dateien liegen. Die Angabe ist optional. Wenn Ihr HOME definiert, muß dieser Wert an erster Stelle in der PROJEKT-Datei definiert sein! Wenn Ihr HOME nicht benutzt, müßt Ihr überall absolute Pfadangaben verwenden. Die Einführung dieser Variablen war eine Anregung von Thomas Richter. Danke.
  Emile hatte noch einen Tip, und den habe ich dann auch gleich umgesetzt: Wenn Ihr in der Projektdatei hier die Variable $GLOBAL_HOME, und in der GUI-Konfiguration ein Verzeichnis eintragt, wird der Wert aus der GUI-Konfiguration genommen. Das ist hilfreich, wenn Ihr auf zwei unterschiedlichen Servern arbeitet.
- TAGS
  Gibt den Pfad zu jener Datei an, die die Definition der Tags enthält, die der Parser ersetzen soll.
- TEMPLATE
  Der Pfad zum Template, mit dem die Content-Seite geparst werden soll.
- MENU
  Die mit diesem Pfad zu findende Datei beinhaltet die Menüdefinitionen für die Homepage.
- MENUTEMPLATE
  Jenes Template, mit dem das Layout der Menüs festgelegt wird.

Das sind derzeit alle Felder, die aus der Projektdatei verwendet werden. Bei zukünftigen Versionen können neue Felder dazukommen.

Wenn Ihr $home nicht benutzt, gebt die Pfade immer absolut zum Document-Root Eures Webservers an. Nur dann ist sichergestellt, daß der Parser diese Dateien auch findet.