Was ist ein Kontext?

Wenn eine CMS-Datei exportiert wird, dann dient sie dem Layout, das für den Export verwendet wird (beispielsweise dem mastertemplate), als Datenquelle. Diese Datenquelle enthält benannte Werte wie den mittels title abrufbaren Titel der Datei. Die Datenquelle bildet den Kontext, in dem sich NPSOBJ-Anweisungen befinden, wenn sie sich auf einen Namen beziehen, um dessen Wert zu ermitteln:

<npsobj insertvalue="var" name="title" />

Hier wird im aktuellen Kontext nach dem Wert für title gefragt. Fragt man in einem Kontext nach einem Wert für einen in diesem Kontext unbekannten Namen, so erhält man den leeren Wert.

Der Content Management Server kennt zwei Typen von Kontexten, Datei- und Linkkontexte.

Während des Exports einer Datei gibt es immer mindestens zwei Kontexte, den initialen und den aktuellen Kontext. Zu Beginn des Exports eines Dokuments oder eines Ordners liefert die betreffende CMS-Datei den initialen und den aktuellen Kontext. Während der initiale Kontext im Verlauf des Exports der CMS-Datei immer gleich bleibt, kann sich der aktuelle Kontext ändern. Der aktuelle Kontext wird durch NPSOBJ-Anweisungen geändert, die keinen einfachen Wert wie title liefern, sondern eine Liste von Kontexten. Die folgenden Anweisungen liefern eine solche Kontextliste: list, newslist, table und context.

Mit Hilfe dieser Anweisungen lässt sich für jeden Kontext in der Kontextliste NPSOBJ-Code ausführen. Beispiel:

<npsobj list="toclist">
  <npsobj insertvalue="anchor" name="self">
    <npsobj insertvalue="var" name="title" /><br />
  </npsobj>
</npsobj>

Die mittlere NPSOBJ-Anweisung, insertvalue="anchor", wird für jeden in toclist enthaltenen Kontext ausgeführt. Bei jedem Durchlauf der list-Anweisung wird der betreffende Kontext aus toclist zum aktuellen Kontext. Nachdem alle Kontexte aus toclist durchlaufen wurden - also nach Abschluss der list-Anweisung - wird der ursprüngliche Kontext, in dem die list-Anweisung ausgeführt wurde, wieder zum aktuellen Kontext.

Jede Frage nach einem Wert wird im aktuellen Kontext ausgewertet. Die Liste der darin verfügbaren Namen hängt vom Typ des Kontexts ab. Bei Dateikontexten ergibt sich ein Teil der verfügbaren Namen aus dem Typ der Datei und aus ihrer Dateivorlage.