Erweiterte Template-Sprache

Verbesserte Bearbeitungselemente in der Vorschau

Bearbeitungselemente können in der Vorschau jetzt dynamisch positioniert und mit Effekten versehen werden. Solche Marker beeinflussen das angezeigte Layout nicht mehr, da Sie über den zu bearbeitenden Inhalten schweben.

Bearbeitungselement

Bessere @-Referenzen

@-Referenzen können nicht mehr nur am Anfang eines Attributwerts verwendet werden, sondern an beliebiger Stelle im Attributwert, auch mehrfach. Dadurch können Attributwerte auf einfache Art und Weise aus statischem und dynamisch berechnetem Text zusammengesetzt werden. Dies ist durch eine andere Syntax möglich. @-Referenzen werden nun nicht mehr nach dem Muster @variable gebildet, sondern haben das Format @{variable}.

Bisher gingen Layout-Entwickler folgendermaßen vor, um Tag-Attributen eine Kombination aus statischem und dynamischem Text zuzuweisen:

<!-- Bisher übliche Vorgehensweise -->
<npsobj modifyvar="set"
  varname="cssClass">box obj_<npsobj insertvalue="var" name="id"/></npsobj>
<div class="@cssClass">

Mit den neuen @-Referenzen kann derselbe Effekt viel einfacher erzielt werden:

<!-- Neue Vorgehensweise -->
<div class="box obj_@{id}">

Bei den neuen @-Referenzen wird der Feld- oder Variablenname immer in geschweifte Klammern eingeschlossen. Die bisherige Schreibweise wird nicht mehr unterstützt.

Bei der Migration werden @-Referenzen, die sich in Layouts und HTML-Dokumenten befinden und das bisherige Format haben, automatisch in das neue Format umgewandelt.

Lokale Exportvariablen

In der NPSOBJ-Anweisung modifyvar set können Exportvariablen als lokal markiert werden. Beispiel:

<npsobj modifyvar="set" varname="foo" local="true">bar</npsobj>

Das Attribut local ist auch bei modifyvar append erlaubt. Bei dieser Anweisung wird eine Variable jedoch nur dann zu einer lokalen, wenn sie noch nicht existiert. Bestehende globale Variablen bleiben also global.

In Verbindung mit der unten beschriebenen Parametrierbarkeit von Layout-Aufrufen lassen sich Sublayouts durch lokale Variablen besser von den übergeordneten Layouts abgrenzen, wodurch eine klarere und leichter wartbare Layout-Struktur entsteht.

Parametrierbare Layouts

Es ist nun möglich, einem Layout, das über eine insertvalue-template-Anweisung aufgerufen (inkludiert) wird, einen statischen oder (ganz oder teilweise) berechneten Text zu übergeben. Hierzu wird der Text im Inhalt der insertvalue-template-Anweisung platziert. Im aufgerufenen Layout kann der Text über die Variable npsobjContent abgerufen werden. Ein Beispiel finden Sie in der Dokumentation zu der genannten Anweisung insertvalue template.

Diese neue Funktion ermöglicht es, Layouts in unterschiedlichen Kontexten zu inkludieren, ohne globale Variablen zur Übergabe von Argumenten verwenden zu müssen. Dadurch lässt sich die Komplexität von Layoutdateien reduzieren.

Ferner können reine Textdaten einem einzufügenden Layout jetzt auch als Argumente in Form von Tag-Attributen übergeben werden. Beispiel:

<npsobj insertvalue="template" name="TemplateName" showbody="1" person="@{author}" />

Die Argumente und auch die Variable npsobjContent werden wie lokale Exportvariablen behandelt; sie sind nur während der Auswertung des inkludierten Layouts gesetzt und nur in diesem sichtbar. Ein Beispiel und weitere Erläuterungen finden Sie in der Dokumentation zur insertvalue-template-Anweisung.