Lupe Suche
Responsiv Devices

2 - Funktionsweise

Der Haupt-Controller Page.php regelt den Aufbau der Seiten. Beim Seitenaufruf wird, (vereinfacht), folgender Ablauf in Gang gesetzt::

  • www.meinesite.ch/aktuelles
    'aktuelles' ist der Schlüssel zum Aufruf des Datensatzes, der für die Seite 'aktuelles' mit dem Editor erzeugt und in der Datenbank gespeichert und veröffentlicht wurde.
  • Der durch die URL angeforderte Datensatz wird beim Aufruf der Seite in den entsprechenden Div-Rahmen geladen.
  • Dazu ist ein PHP-Platzhalter erforderlich, um den Inhalt an die gewünschte Stelle zu platzieren. Der PHP-Platzhalter heisst: $Content
  • Wird bspw. ein <div id="inhalt">$Content</div> im Template verwendet, gelangt der mit dem Editor gespeicherte HTML-Block in den Div-Rahmen 'inhalt'.
  • Für die Darstellung der Navigation wird eine Liste aller Navigationsbezeichnungen und Links geladen. (Es soll ja nicht nur der Navigationspunkt der aktuell geladenen Seite angezeigt werden).
  • Dazu ist ein Durchlauf erforderlich, der ein Array für den Navigationsaufbau liefert. Im Template verwenden wir dafür <% loop Menu(1) %><li><a ...> ... </a></li>
    <% end_loop %> für die erste Navigationsebene.
  • Navigationsbezeichnungen und Hyperlinks gelangen durch die PHP-Platzhalter $MenuTitle und $Link an die gewünschte Position im HTML-Code.
    Bsp.: <li><a href="$Link">$MenuTitle</a></li>

 

Da Silverstripe ein MVC (Model-View-Control-System) ist, sind PHP-Controller, Datenbank-Modelle und View (Template) getrennt. Der Page-Controller Page.php ruft die HTML-Datei Page.ss auf. So können wir den HTML- und CSS-Code ohne mit PHP konfrontiert zu werden editieren.

Damit unser Template mit Silverstripe funktioniert, müssen wir nur noch die erforderlichen head-Informationen (CSS und/oder Javascript Verlinkungen, Metatags) einfügen. Der Platzhalter <% base_tag %> gehört in den head-Tag. Den PHP-Platzhalter für die Formulare $Form muss dem Content ebenfalls hinzugefügt werden. (Andernfalls werden die zum Login ins Backend erforderlichen Formularfelder nicht angezeigt).

Weiter um die Ordnerstruktur für das Template anzulegen