# Funktionen und Funktionsweise

## Layoutdatei erstellen

Eine Layoutdatei ist eine ganz normale HTML-Seite mit allem was dazu gehört. Layoutdateien dienen als Vorlage zum erstellen neuer Seiten und werden mit der Endung .tpl im Verzeichnis /content/layouts gespeichert.

## Platzhalter für Menüs, Blöcke und bearbeitbare Bereiche setzen

Wichtig! Wenn keine Platzhalter vergeben und keine Menü- und Blockdateien angelegt werden, erscheint der Punkt "Bearbeiten" nicht im Adminmenü. Wenn diese Funktionsweise erwünscht ist, kann in der Datei "/settings/globalvars.php" die Variable $webutler_config['fullpageedit'] auf 1 gesetzt werden, um den Punkt "Aktuelle Seite bearbeiten" ins Adminmenü zu verschieben. !!!

### Mit Platzhaltern arbeiten

Damit neue Links automatisch auf allen Seiten erscheinen, werden Menüs in separaten Dateien gespeichert. Damit ein Menü geladen wird, muß der Dateiname mit Kommentarfeldern in die Layoutdatei bzw. Seite geschrieben werden. Format:
<!-- begin_menu_MENÜDATEINAME -->
<!-- menu_MENÜDATEINAME -->
<!-- end_menu_MENÜDATEINAME -->
Blöcke bieten sich an, wenn ein Inhalt auf verschiedenen Seiten angezeigt werden soll und man diesen Inhalt zentral ändern möchte. Die Formatierung ist gleich der für Menüs:
<!-- begin_block_BLOCKDATEINAME -->
<!-- block_BLOCKDATEINAME -->
<!-- end_block_BLOCKDATEINAME -->
Inhaltsbereiche, die sich im Editor öffnen sollen, werden in Kommentaren eingefasst. Die Kommentare müssen fortlaufend durchnummeriert werden. Format:
<!-- begin_content_NUMMER -->
bearbeitbarer Inhalt
<!-- end_content_NUMMER -->
Die Kommentare sollten von einem HTML-Blockelement (am besten DIV) umschlossen sein und dürfen nicht verschachtelt werden, z.B. ein Menü in _content_. Wenn man die Bereiche im Bearbeitungsmodus ("Inhalt bearbeiten" oder "Seite bearbeiten") zusätzlich sichtbar machen möchte, kann man die CSS-Klassen "block_border" für Menüs und Blöcke bzw. "content_border" für den Inhalt in das umschließende HTML-Element schreiben. "block_border" erzeugt eine blaue, "content_border" eine rote gestrichelte Linie.

## Headerdaten

Headerdaten wie CSS- oder Javascriptdateien können auch dynamisch in eine oder alle Seiten geladen werden. Dafür muß die Datei einfach nur in das PHP-Array "$webutler_autoheaderdata" geschrieben werden. Zum Beispiel:
$webutler_autoheaderdata[] = '<script type="text/javascript" src="meinscript.js"></script>';
So können zum Beispiel Stylesheetdateien aus Modulen geladen werden oder, wenn man nachträglich ein Javascript in alle Seiten integrieren will, schreibt man die Zeile einfach in die "globalvars.php".

## Sessiondaten

Machmal ist es nützlich den Dateinamen der letzten Seite zu kennen, z.B für Weiterleitungen oder als Alternative zu "history.back()". Dafür kann auf die Sessionvariable $_SESSION['history']['lastpage'] zugegriffen werden.
Wenn die Benutzerverwaltung installiert ist, werden die Authentifizierungsdaten des Users in der Sessionvariablen $_SESSION['userauth'] gespeichert.
Bei mehrsprachigen Seiten kann mit der Sessionvariablen $_SESSION['language'] die vom Besucher gewählte Sprache abgefragt werden.

## Formulare

In jedes auf einer Seite befindliche Formular wird ein zusätzliches, verstecktes Feld eingefügt. Sobald von einer Seite ein Formular per POST verschickt wird, wird der Wert des versteckten Feldes mit dem Wert der Sessionvariablen $_SESSION['antixpost'] verglichen. Das Formular wird nur versendet, wenn die Werte übereinstimmen. Diese Funktionsweise soll dabei helfen Spammerei ein wenig einzudämmen.