Das Hauptskript eines Mandanten ist die site/<Mandant><em>/</em>index.php
.
Die meisten grundlegenden Funktionen einer Seite lassen sich allerdings auch schon über die entsprechenden Templates steuern, so dass Sie unter Umständen komplett auf eine index.php
verzichten können. Müssen Sie aber bestimmte Aktionen für alle Seiten des Auftritts realisieren, ist die index.php
die beste Stelle, um solche Skripte einzubinden.
Beispiel 1
Die index.php
der Demo-Site z.B. sorgt dafür, dass bei Seiten mit leerem Inhalt direkt der Inhalt der ersten untergeordneten Seite angezeigt wird:
// Hat der Inhalt der aktuellen Seite weniger als 14 Zeichen und ist die Seite vom Typ "page" (Standard)?
if (
strlen($page->field['content']) < 14
&& $page->field['type'] === 'page'
) {
// Kinder der Seite auslesen
$children = $page->getChildren();
if ($child = $children->nextPage()) {
// Aktuelle Seite mit der Kind-Seite überschreiben
$page = $child;
}
}
Beispiel 2
Außerdem können in der index.php auch weitere allgemein gültige Skripte eingebunden werden.
// Skript für Emotionbilder.
require 'emotion.php';
Der Pfad zu den Skripten ist dabei relativ zum aktuellen Site-Verzeichnis.
Beispiel 3
Die Demo-Site bietet z.B. noch die Möglichkeit, einen zweiten Inhaltsbereich einzubinden. Je nach Seitentyp können hier unterschiedliche Templates zum Einsatz kommen. Auch ein solcher Skriptteil kann in die index.php
integriert werden:
// Der Pfad zu einer Template-Datei für einen zweiten Inhaltsbereich
$template_file = "{$GLOBALS['egotec_conf']['skin_dir']}{$site->skin}/{$page->field['type']}/body_2.html";
if (!file_exists($template_file)) { // Existiert hier keine Template-Datei für einen zweiten Inhaltsbereich?
// Auf ein Standard-Template zurückgreifen
$template_file = "{$GLOBALS['egotec_conf']['skin_dir']}{$site->skin}/body_2.html";
}
if (file_exists($template_file)) { // Gibt es eine solche?
$smarty->assign('typeTemplate2', $template_file); // An Smarty als Platzhalter übergeben
}
Wenn entweder das Typenspezifische- oder das Standardtemplate existiert, wird dieses dem Haupttemplate zugewiesen und kann dann vom Designer entsprechend eingebunden werden.