Texte speichern und abrufen

Ein Text kann mit Anweisungen nach dem folgenden Muster in einer Export-Variablen abgelegt und an anderer Stelle in der Layoutdatei abgerufen werden:

<npsobj modifyvar="set" varname="myvar">
  Autor des Dokuments: <npsobj insertvalue="var" name="author" />
</npsobj>
...
<npsobj insertvalue="var" name="export.myvar" />

Dieser Code weist der Variablen myvar die Zeichenkette Autor des Dokuments:, gefolgt vom Wert des Feldes author zu. Anschließend wird der Wert dieser Variablen ausgegeben. Es ist auch möglich, mit

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

auf die Variable zuzugreifen. Existiert die Variable nicht, so wird beim Export wegen des fehlenden Präfixes export. jedoch eine (nicht erwünschte) Content-Abhängigkeit für den aktuellen Dateikontext erzeugt.

Während die Datei exportiert wird, lässt sich myvar beliebig oft auslesen, sofern diese Variable nicht mit der Anweisung

<npsobj modifyvar="clear" varname="myvar" />

gelöscht wird. Auch in inkludierten Layouts (insertvalue="template") kann man auf die Variable zugreifen. Dies führt allerdings schnell zu nicht nachvollziehbaren Layouts, weil in dem inkludierten Layout nicht spontan erkennbar ist, welchen Wert die Variable hat. Aus diesem Grund sollten Variablen nur in den Layouts verwendet werden, in denen ihnen ein Wert zugewiesen wird.

Möchte man einer Variablen nur den Wert eines Feldes, d. h. keinen literalen Text zuweisen, so ist dies direkt im Tag der Anweisung möglich:

<npsobj modifyvar="set" varname="myvar" name="parent.title" />

Die Namen von Export-Variablen haben Vorrang vor den Namen von Feldern. So können Sie die Variable toclist anlegen und ihr eine Zeichenkette zuweisen, später jedoch nicht mit <npsobj list="toclist"> ein Inhaltsverzeichnis generieren lassen. Mit dem Präfix self ist es jedoch möglich, wieder auf das gleichnamige Versions- oder Dateifeld zu verweisen ("self.toclist").