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 <?php und ?> 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 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 mit 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:
<?php include('./data/includes/Beispiel'); ?>