Seiten-Presenter

Mit dem Page-Presenter lassen sich Inhaltsseiten umsetzen. Im Tutoral Beispielseite anlegen kann man die einzelnen Schritte zum Anlegen einer Seite nachvollziehen.

Inhalte

In einen Container können unterschiedliche Inhalte eingefügt werden. Inhalte werden über einen der Tags plugin, extern, object, content, file, route definiert.

Plugin

Die Plugin-Konfiguration hängt von der jeweiligen Pluginklasse ab. Eine detailierte Beschreibung der Plugins findet sich hier.

<container placeholder="content">
  <plugin class="/namespace/class">
   <!-- pluginconfig -->
  </plugin>
</container>

Externe Datei

Über den Tag extern lassen sich externe Dateien einbinden. Die URL wird über das Attribute url angegeben. Werden weitere Parameter in der aufrufenden URL übergeben, so werden diese an die URL angehängt.

<container placeholder="content">
  <extern url="http://www.example.com/" />
</container>

Objekt

Ein Objekt kann direkt eingebunden werden. Das Objekt wird dabei über die Methode Assembly::getObject() geladen. Als Attribute wird die uuid und die Klasse class werwartet.

<container placeholder="content">
  <object uuid="12435-3243-2343-12322-23232" class="\namespace\myClass" />
</container>

Statischer Inhalt

Der Inhalt der über den content-Tag angegeben wird, wird direkt in den Container eingefügt. Wird HTML definiert, so muss der Inhalt in ein CDATA-Element gepackt werden.

<container placeholder="content">
  <content>Mein Inhalt für diese Seite</content>
</container>

Inhalt einer Datei

Inhalte einer Datei werden eingelesen und an der betreffenden Stelle ausgegeben.

<container placeholder="content">
  <file path="/to/resource" name="file.html"></file>
</container>

Inhalt eines Verzeichnisses

Inhalte eines Verzeichnisses werden rekursiv eingelesen und an der betreffenden Stelle ausgegeben. Über das pattern kann ein Filter übergeben werden. In dem folgenden Beispiel werden nur HTML-Dateien eingelesen.

Hinweis

Die Sortierung der Dateien im Verzeichnis wird über ksort des Dateinamens realsiert.

<container placeholder="content">
  <directory path="/to/resource" pattern="\.html$"></directory>
</container>

Ergebnis einer Route

Die im Attribute id angegeben Route wird aufgerufen und das Ergebnis als Inhalt verwendet.

<container placeholder="content">
  <route id="my-route">
    <parameters>
      <parameter type="integer" name="name">myName</parameter>
      <parameter type="string" name="format">jpg</parameter>
    </parameters>
  </route>
</container>