Zum Inhalt springen

Template Attribute Language Expression Syntax

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. April 2007 um 16:36 Uhr durch TobiasHerp (Diskussion | Beiträge) (Beispiele (Eigenkreation)). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Abkürzung für Template Attribute Language Expression Syntax, die Syntax für die Auswertung der von der Template Attribute Language (TAL) für Attributwerte verwendeten Ausdrücke. Die Möglichkeit, hierfür eine andere Syntax als TALES zu verwenden, ist ausdrücklich vorgesehen.

Da TAL, TALES und METAL ursprünglich für den in Python implementierten Anwendungsserver Zope geschrieben wurden, können Python-Ausdrücke verwendet werden. Zope erweitert die TALES-Spezifikation im Rahmen der Zope Page Templates.

Überblick

TALES stellt mehrere Methoden zur Verfügung, Ausdrücke zu formulieren, die in TAL- und METAL-Attributen verwendet werden können und durch ein (optionales) Präfix unterschieden werden:

Pfadausdrücke

Pfadausdrücke werden durch das optionale (und deshalb fast immer fortgelassene) Präfix path: gekennzeichnet. Beispiele sind:

<metal:form use-macro="location/page/macros/myform"/>

zur Verwendung eines METAL-Makros; hier sei beispielsweise location das Verzeichnis, das eine Templatedatei page enthält, in der wiederum das Makro myform definiert wurde, oder

<tr tal:repeat="item python:({'key': 'eins'}, {'key': 'zwei'})">
  <td tal:content="repeat/item/number">99</td>
  <td tal:content="string:Zeile ${item/key}">Zeile 99</td>
</tr>

Erläuterungen:

  • das tal:repeat-Attribut erzeugt eine Variable item und eine Sequenz von Dictionarys, die verwendet wird, um mehrere HTML-Tabellenzeilen zu erzeugen
  • die speziellen Schleifenvariablen (z. B. number) für item werden über die spezielle, vom TALES-Standard geforderte Variable repeat zur Verfügung gestellt
  • Pfadausdrücke können auch innerhalb von String-Ausdrücken verwendet werden, siehe unten

Stringausdrücke

Das Präfix string: (siehe obiges Beispiel) kennzeichnet eine Zeichenkette, in der Variablenersetzungen vorgenommen werden können.

Logische Negation

Das Präfix not: wertet den restlichen Ausdruck aus und gibt seine logische Negation zurück. Ein Anwendungsbeispiel:

<tal:if condition="view_ok">
 ...
</tal:if>
<tal:else condition="not:view_ok">
 ...
</tal:else>

is_view_ok könnte hier eine Methode sein, die aus dem context aufgerufen wird und die Leseberechtigung des Users überprüft.

Python-Ausdrücke

Das Präfix python: muß nicht zwingend implementiert werden; ist es vorhanden, kennzeichnet es einen Python-Ausdruck. Dies findet üblicherweise nur Anwendung, wenn Pfadausdrücke nicht ausreichen, z. B. wenn eine Funktion mit bestimmten Argumenten aufgerufen werden muß.

Unterdrückung des Quotings

Normalerweise werden alle über TAL-Attribute getätigten Ausgaben gequotet, um die HTML-Seite zu schützen. Wenn HTML-Code erzeugt und verwendet werden soll, läßt sich das über das Präfix structure: erreichen.