logo

Für dynamische Seitenelemente wie

Dazu muss eine Datei im Ordner "dynamicClasses" angelegt werden. Diese muss eine PHP-Klasse beinhalten, die folgenden Konventionen unterliegt.

Beispiel

In unserem Beispiel einer Stellenanzeige würde die Datei "Stellenanzeige.class.php" dann so aussehen:

<?php
class Stellenanzeige extends Dynamic
{
  var $id;
  function execute()
  {
    // Hier könnte man sich die Daten aus einer Datenbank o.ä. holen.
    $job = "Softwareentwickler (m/w)";
    $date = "01.01.2019";
    $this->output("<h1>Wir suchen: $job</h2>");
    $this->output("Zum $datum suchen wir einen $job.");
  }
}
 

Aufruf der dynamischen Klasse

Um diese Klasse zu nutzen, muss in der Seitenvorlage ein Element vom Typ "Dynamisch" erstellt werden. In den Eigenschaften dieses Elementes wird "Stellenanzeige" ausgewählt. Anschließend muss das Element natürlich noch in den Template-Quellcode aufgenommen werden.

Bei der Seitengenerierung ruft das CMS die execute()-Methode auf und der Inhalt in die Ausgabe übernommen.

Aktuellen Seitenkontext verwenden

In der Methode exec() kann man über $this auf zahlreiche Variablen zurückgreifen, z.B. kann man mit $this->page auf das aktuelle Seitenobjekt zugreifen. Es darf jedoch nur lesend auf diese Objekte zugegriffen werden!

Parameter

Das CMS kann alle Instanzvariablen (wie das Attribut $id im o.s. Beispiel) vor dem Aufruf füllen.

In den Eigenschaften des Template-Elementes werden alle Attribute angezeigt und sind mit einem beliebigen Wert belegbar.

Verwendung als Makro

Alle dynamischen Klassen können bei Verwendung der Wiki-Notation in Textelementen direkt als Makro eingebunden werden:

<<name variable=wert>>

Beispiel Youtube

<<youtube id=abcdef123>>

bindet das Youtube-Video mit der Id "abcdef123" in die Ausgabeseite ein. Dabei wird die Klasse Youtube.class.php instanziiert und die Instanzvariable $id mit dem Wert abcdef123 gefüllt.