====== Includes ====== Includes können zum Erzeugen von dynamischen als auch statischen Inhalten verwendet werden. Für dynamische Inhalte kann PHP-Code verwendet werden. Dieser muss wie üblich innerhalb von //// stehen. ===== Zugriff auf PHP-Variablen ===== Es ist möglich, auf Variablen des CMS zuzugreifen und so z.B. dynamisch je nach geöffneter Seite eine bestimmte Aktion auszuführen. Das [[http://de.php.net/global|Schlüsselwort global]] muss verwendet werden, da Includes innerhalb einer Funktion ausgeführt werden. ==== Die beiden wichtigsten Variablen ==== * **$current_page**: eindeutige Kurz-URL der aktuellen Seite * **$query_string_data**: Daten in der URL nach dem Trennzeichen === Beispiel === Wenn die URL __http://domain.tld/index.php?seitenname/text__ lauten würde, hätten die Variablen folgenden Inhalt: * **$current_page**: seitenname * **$query_string_data**: text ===== Zugriff auf das Template ===== Die Template-Klasse ist unter der PHP-Variable **$this** verfügbar und muss nicht extra mit dem Schlüsselwort **global** importiert werden. Es können alle Funktionen der Template-Klasse verwendet werden. ===== Zugriff auf Seitenattribute ===== Die im Verwaltungsbereich festlegbaren Attribute sind unter der PHP-Variable **$attributes** verfügbar. Das Schlüsselwort **global** wird zum Zugriff wie oben beschrieben benötigt. Die Variable ist ein Array, das die einzelnen Attribute enthält. Jedes Attribut wird als ein weiteres Array dargestellt, wobei der erste Wert den Namen und der zweite den Inhalt enthält. ==== Beispiel ==== global $attributes; foreach($attributes as $attr) { list($attr_name, $attr_data) = $attr; // $attr_name und $attr_data müssen hier verarbeitet werden } ===== Einbinden von Includes ===== Includes können im Template und in Seiten mit der dazugehörigen Variable eingebunden werden. Wenn ein Include den Namen //Beispiel// hat, müsste //%%INCLUDE-Beispiel%%// geschrieben werden. Alternativ können Includes auch mit //%%LATEINCLUDE-Name%%// eingebunden werden, die Ausführung erfolgt dann so spät wie möglich, sodass z.B. Ersetzungen auf der Seite mittels der Template-Engine vorgenommen werden können. Um innerhalb eines Includes einen weiteren Include einzubinden muss PHP verwendet werden. Der Code um den Include //Beispiel// einzubinden würde hier folgendermaßen lauten: