<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Template_Attribute_Language_Expression_Syntax</id>
	<title>Template Attribute Language Expression Syntax - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Template_Attribute_Language_Expression_Syntax"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Template_Attribute_Language_Expression_Syntax&amp;action=history"/>
	<updated>2026-05-17T06:54:58Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Template_Attribute_Language_Expression_Syntax&amp;diff=973133&amp;oldid=prev</id>
		<title>imported&gt;M2k~dewiki: /* Einleitung */ -</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Template_Attribute_Language_Expression_Syntax&amp;diff=973133&amp;oldid=prev"/>
		<updated>2023-08-19T08:47:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Einleitung: &lt;/span&gt; -&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Template Attribute Language Expression Syntax&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;TALES&amp;#039;&amp;#039;&amp;#039;) beschreibt die Syntax für die Auswertung der von der [[Template Attribute Language]] (TAL) und [[Macro Expansion Template Attribute Language]] (METAL) für Attributwerte verwendeten Ausdrücke. Die Möglichkeit, hierfür eine andere Syntax als TALES zu verwenden, ist ausdrücklich vorgesehen; in der Regel wird TALES jedoch nicht ersetzt, sondern erweitert.&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;[[Zope (Webanwendungsserver)|Webanwendungsserver Zope]]&amp;#039;&amp;#039; erweitert die TALES-Spezifikation im Rahmen der [[Zope Page Templates]].&lt;br /&gt;
&lt;br /&gt;
== Überblick ==&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
=== Ausdrucksarten ===&lt;br /&gt;
; Pfadausdruck&lt;br /&gt;
: Präfix &amp;lt;code&amp;gt;path:&amp;lt;/code&amp;gt; (optional, und deshalb fast immer fortgelassen): zum Zugriff auf strukturierte Variablen, Dateisystemobjekte, Makros (METAL) usw.&lt;br /&gt;
; Stringausdruck&lt;br /&gt;
: Präfix &amp;lt;code&amp;gt;string:&amp;lt;/code&amp;gt;; erlaubt Pfadausdrücke in &amp;lt;code&amp;gt;${...}&amp;lt;/code&amp;gt;&lt;br /&gt;
; Logische Negation&lt;br /&gt;
: Präfix &amp;lt;code&amp;gt;not:&amp;lt;/code&amp;gt;; wertet den restlichen Ausdruck aus und gibt seine logische Negation zurück&lt;br /&gt;
; Python-Ausdruck&lt;br /&gt;
: Präfix &amp;lt;code&amp;gt;python:&amp;lt;/code&amp;gt;; wenn implementiert, gibt den Wert des folgenden [[Python (Programmiersprache)|Python]]-Ausdrucks zurück. Dies findet üblicherweise nur Anwendung, wenn Pfadausdrücke nicht ausreichen, z. B. wenn eine Funktion mit bestimmten Argumenten aufgerufen werden muss.&lt;br /&gt;
; Unterdrückung des Quotings&lt;br /&gt;
: Das vorangestellte Schlüsselwort &amp;lt;code&amp;gt;structure&amp;lt;/code&amp;gt; (&amp;#039;&amp;#039;ohne&amp;#039;&amp;#039; Doppelpunkt) unterdrückt das sonst automatisch angewendete HTML-Quoting, um beispielsweise ein komplettes HTML-Element zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
=== Eingebaute Namen ===&lt;br /&gt;
; nothing&lt;br /&gt;
: ein „Nicht-Wert“, der keine [[Zeichenkette]] sein darf, z. B. &amp;#039;&amp;#039;None&amp;#039;&amp;#039; ([[Programmiersprache]] Python), &amp;#039;&amp;#039;void&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Nil&amp;#039;&amp;#039;, oder &amp;#039;&amp;#039;NULL&amp;#039;&amp;#039;.&lt;br /&gt;
; options&lt;br /&gt;
: die (benannten) Argumente, die dem Template übergeben wurden&lt;br /&gt;
; repeat&lt;br /&gt;
: zum Zugriff auf Schleifenvariablen wie &amp;#039;&amp;#039;index&amp;#039;&amp;#039;, &amp;#039;&amp;#039;number&amp;#039;&amp;#039; usw.&lt;br /&gt;
&lt;br /&gt;
Diese Namen werden üblicherweise noch um weitere ergänzt, siehe [[Zope Page Templates]].&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Einfacher Pfadausdruck zum Zugriff auf ein Makro ===&lt;br /&gt;
 &amp;lt;[[METAL|metal]]:form use-macro=&amp;quot;location/page/MACROS/myform&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier sei beispielsweise &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; das Verzeichnis, das eine Vorlagendatei &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; enthält, in der wiederum das Makro &amp;lt;code&amp;gt;myform&amp;lt;/code&amp;gt; definiert wurde. In [[Zope Page Templates]] würde hier anstelle von &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; z. B. &amp;lt;code&amp;gt;here&amp;lt;/code&amp;gt; (als Ausgangspunkt der [[Zope (Webanwendungsserver)#Akquisition|Akquisition]] zur Suche nach &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt;) oder &amp;lt;code&amp;gt;container&amp;lt;/code&amp;gt; stehen.&lt;br /&gt;
&lt;br /&gt;
=== Schleife mit Pfad-, Python- und Stringausdrücken ===&lt;br /&gt;
 &amp;amp;lt;tr [[Template Attribute Language|tal]]:repeat=&amp;quot;item python:({&amp;#039;key&amp;#039;: &amp;#039;eins&amp;#039;}, {&amp;#039;key&amp;#039;: &amp;#039;zwei&amp;#039;})&amp;quot;&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;td [[Template Attribute Language|tal]]:content=&amp;quot;repeat/item/number&amp;quot;&amp;gt;99&amp;amp;lt;/td&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;td [[Template Attribute Language|tal]]:content=&amp;quot;string:Zeile ${item/key}&amp;quot;&amp;gt;Zeile 99&amp;amp;lt;/td&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/tr&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ausgabe:&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;tr&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;amp;gt;1&amp;amp;lt;/td&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;amp;gt;Zeile eins&amp;amp;lt;/td&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/tr&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;tr&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;amp;gt;2&amp;amp;lt;/td&amp;amp;gt;&lt;br /&gt;
   &amp;amp;lt;td&amp;amp;gt;Zeile zwei&amp;amp;lt;/td&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/tr&amp;amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;Erläuterungen:&amp;#039;&amp;#039;&lt;br /&gt;
* das &amp;lt;code&amp;gt;tal:repeat&amp;lt;/code&amp;gt;-Attribut erzeugt eine Variable &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; und, mit Hilfe des Python-Ausdrucks, eine Sequenz von [[Assoziatives Array|Dictionarys]], die verwendet wird, um mehrere HTML-Tabellenzeilen zu erzeugen&lt;br /&gt;
* die speziellen Schleifenvariablen (z. B. number) für &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; werden über die spezielle, vom TALES-Standard geforderte Variable &amp;lt;code&amp;gt;repeat&amp;lt;/code&amp;gt; zur Verfügung gestellt&lt;br /&gt;
* Pfadausdrücke können auch innerhalb von String-Ausdrücken verwendet werden&lt;br /&gt;
&lt;br /&gt;
=== Logische Negation und TAL-Elemente ===&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;div tal:define=&amp;quot;view_ok context/is_view_ok&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;tal:if condition=&amp;quot;view_ok&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
 &amp;lt;/tal:if&amp;gt;&lt;br /&gt;
 &amp;lt;tal:else condition=&amp;quot;not:view_ok&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
 &amp;lt;/tal:else&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;is_view_ok&amp;#039;&amp;#039; könnte hier eine Methode sein, die aus dem &amp;#039;&amp;#039;context&amp;#039;&amp;#039; aufgerufen wird und die Leseberechtigung des [[Benutzer]]s überprüft. Im „Else-Zweig“ (der syntaktisch nichts anderes ist als der „If-Zweig“; &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; sind hier frei gewählte Namen, die sogar hätten gleich sein dürfen) wird die logische Bedingung des If-Zweigs umgekehrt, sodass nur einer der beiden ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[i18n TAL]]&lt;br /&gt;
* [[Template Engine]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://zpt.readthedocs.io/en/latest/history/TALESSpecification13.html TALES-Spezifikation, Version 1.3]&lt;br /&gt;
* {{Webarchiv | url=http://wiki.zope.org/ZPT/RepeatVariable | wayback=20120909105154 | text=Schleifenvariablen }}&lt;br /&gt;
*  [https://zope.readthedocs.io/en/latest/zope2book/AppendixC.html#tales-overview TALES Overview (im Zope-Book)]&lt;br /&gt;
* {{Webarchiv | url=http://zope3.mpg.de/cgi-bin/twiki/view/Zope/TaLes | wayback=20110914055131 | text=TALES-Seite im Zope-3-Wiki }}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Templatesprache]]&lt;br /&gt;
[[Kategorie:Python (Programmiersprache)]]&lt;br /&gt;
&lt;br /&gt;
[[en:Template Attribute Language Expression Syntax]]&lt;/div&gt;</summary>
		<author><name>imported&gt;M2k~dewiki</name></author>
	</entry>
</feed>