Aufbau der Templates und Mehrspaltigkeit -


In den *Templates* findet sich der HTML-Code. Templates können verschachtelt angelegt werden. Dadurch kann man Komponenten wie Header, Footer oder Navigation in eigene Templates auslagern, die im *Haupt-Template* eingebunden werden. Meist benötigt man für eine Website mehrere Template-Varianten, wie z.B. ein einspaltiges oder zweispaltiges Template. Um HMTL-Code nur zentral an einer Stelle zu pflegen, empfiehlt es sich, dass aktiv anwählbare Template-Varianten (Die Checkbox "_Aktiv[Erscheint bei den Artikeln als Auswahl]_" hat ein Häkchen) kein HTML enthalten, sondern lediglich andere Templates aufrufen. In dieser Demo wurde es so realisiert:
<?php
// Zweispalter-Template
// Es wird die Konstante SITE_TYPE gesetzt.
define('SITE_TYPE', 'col2');
?>
<!-- Hier wird das Template aufgerufen, das den HTML-Code enthält-->
REX_TEMPLATE[3]
Das Haupt-Template mit der ID 3, das den Hauptteil des HTML-Codes enthält, führt dann die Fallunterscheidung durch. Segmente wie Header oder Footer sind aber wieder in eigenen Templates abgelegt. Das erleichtert die Arbeit am Code, da man sich ganz auf diesen Abschnitt konzentrieren kann. Man kann aber natürlich ebenso den gesamte Template-Code in ein einziges Template schreiben.
<?php
// Falls die globale Variable auf "col1" gesetzt ist, wird der Inhalt über die volle Breite angezeigt.
if (SITE_TYPE == 'col1') {
echo '
<div class="container mtb">
<div class="row">
'.$this->getArticle('1').'
</div>
</div>';

// Falls die globale Variable auf "col2" gesetzt ist, wird eine Hauptspalte mit 2/3 Breite und eine Seitenspalte mit 1/3 Breite ausgegeben.
} elseif (SITE_TYPE == 'col2') {
echo '
<div class="container mtb">
<div class="row">
<div class="col-lg-8">
'.$this->getArticle('1').'
</div>
<div class="col-lg-4">
'.$this->getArticle('2').'
</div>
</div>
</div>';
}
?>