Template Attribute Language

Template Attribute Language

Die Template Attribute Language (TAL, sinngemäß übersetzt: „Attributbasierte Schablonensprache“) ist eine Templatesprache zur Generierung von HTML- und XML- (und damit auch XHTML-) Seiten. Sie verfolgt das Ziel, die Zusammenarbeit von Designern und Programmierern zu erleichtern, indem sowohl die Templates als auch die Ergebnisseiten gültige Dokumente ihrer Auszeichnungssprache sind. Die Templates können deshalb mit Designwerkzeugen bearbeitet werden, die von TAL nichts wissen, aber die ihnen unbekannten Attribute unbehelligt lassen.

Die TAL entstand im Rahmen des Web-Anwendungsservers Zope; dort wird in der Regel von Zope Page Templates gesprochen.

TAL abstrahiert völlig von der eingesetzten Programmiersprache; lediglich die eingesetzte Sprache für die Ausdrucksauswertung (in der Regel TALES) kann implementierungsabhängig sprachspezifische Ausdrücke erlauben, meist in Python.

Inhaltsverzeichnis

Überblick

TAL-Templates werden erstellt als Ergebnisdokumente, bei denen die variablen Inhalte durch spezielle Attribute übersteuert werden; Programmcode außerhalb von Elementen, wie z. B. in PHP oder JSP, ist nicht nötig. Im folgenden Beispiel würde das Element <h1>

<h1 tal:content="string:Eine völlig andere Überschrift">
   Für den Designer sichtbare Überschrift
</h1>

von einem üblichen HTML-Editor als

<h1>
   Für den Designer sichtbare Überschrift
</h1>

behandelt, während die Anwendung des Templates durch den Application-Server

<h1>
   Eine völlig andere Überschrift
</h1>

ergibt. Die Angabe eines konstanten Strings ist natürlich ein in der Praxis eher vernachlässigbarer Fall; die möglichen Attributwerte werden von der TAL Expression Syntax (TALES) definiert. So können in den vorhandenen Python-Implementierungen beispielsweise Python-Ausdrücke verwendet werden.


Wenn XML-Dokumente generiert werden sollen, ist es wichtig, den XML-Namespace einzutragen (xmlns:tal="http://xml.zope.org/namespaces/tal").

Makros

Mit Hilfe der METAL (Macro Expansion TAL) ist es möglich, Code über Template-Grenzen hinweg wiederzuverwenden.

Internationalisierung

Mit Hilfe der i18n-Attribute (siehe i18n TAL) können lokalisierte Seiten generiert werden.

Attribute

Es werden folgende Attribute erkannt, denen im Normalfall das Präfix „tal:“ vorangestellt werden muss:

define
erzeugt innerhalb des durch das Element definierten Blocks gültige, lokale Variablen
condition
entscheidet, ob das Element erzeugt wird
repeat
erzeugt eine Schleifenvariable, mit der über eine Sequenz iteriert wird, z. B. um eine Auswahlliste oder eine Tabelle zu erzeugen
content
ersetzt den Inhalt des Elements
replace
ersetzt das Element (und ist deshalb nicht gemeinsam mit content oder attributes einsetzbar)
attributes
ersetzt die angegebenen Attribute (z. B. könnten mit tal:attributes="name name; id name" Name- und ID-Attribut eines Eingabefelds mit Hilfe der Variablen „name“ definiert werden)
omit-tag
erlaubt, das Tag dynamisch fortzulassen und nur den Inhalt darzustellen
on-error
wird ausgeführt, wenn ein Fehler auftritt, und funktioniert dann wie „content“

Wenn ein Element mehrere TAL-Attribute hat, werden diese (unabhängig von der Reihenfolge ihrer Notierung) in der oben angegebenen (logisch naheliegenden) Reihenfolge ausgewertet; die Reihenfolge der Variablen-Definitionen innerhalb eines „define“-Attributs ist hingegen signifikant, sodass eine Variable in späteren Zuweisungen in demselben define-Attribut verwendet werden kann.

Wenn es kein Element gibt, das sich als Träger der TAL-Attribute anbietet, können auch spezielle TAL-Tags verwendet werden; in diesem Fall ist das Präfix „tal:“ optional. Beispiel:

<tal:if condition="context/itemlist">
   ...
</tal:if>

Der Code innerhalb des <tal:if>-Elements wird dabei verwendet, wenn beispielsweise die im Kontext (was immer das für den verwendeten Application-Server bedeutet, beispielsweise ein Objekt) definierte Variable „itemlist“ true ist, im Falle einer Liste also mindestens ein Element enthält. Der Bezeichner nach dem Doppelpunkt ist dabei beliebig; er muss lediglich bei öffnendem und schließendem Tag gleich sein.

Verwendung

TAL/TALES/METAL werden von folgenden Projekten verwendet:

Andere Implementierungen

Neben der ursprünglichen Zope-Implementierung gibt es (ohne Anspruch auf Vollständigkeit) die nachfolgend aufgeführten:

Python

Java

Perl

PHP

XSL

Siehe auch

Literatur

  • Möller, Erik: Vorlagen-TALent – Web-Templates mit TAL, TALES und METAL (Praxis, TAL-Templates für Zope X3, Template Attribute Language, TAL, TALES, METAL, Content Management System, CMS, PHPTAL, PETAL, JavaZPT). In: c't 3/2005, S. 194

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Template Attribute Language — The Template Attribute Language (TAL) is a templating language aimed to generate HTML and XML pages. Its main goal is to simplify the collaboration of programmers and designers by templates being proper HTML (or XML, respectively) which can be… …   Wikipedia

  • Template Attribute Language Expression Syntax — Die Template Attribute Language Expression Syntax (TALES) 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… …   Deutsch Wikipedia

  • Template Attribute Language Expression Syntax — The Template Attribute Language Expression Syntax (TALES) is the recommended expression language used by TAL and METAL …   Wikipedia

  • Macro Expansion Template Attribute Language — Die Macro Expansion Template Attribute Language (METAL; engl., „Makrosprache für attributbasierte Schablonenverarbeitung“) erlaubt die Definition von Makros zur Wiederverwendung von Code in anderen Vorlagen. In der Regel wird sie im Zusammenhang… …   Deutsch Wikipedia

  • Template:Cite book —   [ …   Wikipedia

  • Template method pattern — [ LePUS3 ( [http://lepus.org.uk/ref/legend/legend.xml legend] ) ] In software engineering, the template method pattern is a design pattern.It is a so called behavioral pattern, and is unrelated to C++ templates.IntroductionIn a template pattern,… …   Wikipedia

  • Glossary of Unified Modeling Language terms — This glossary of Unified Modeling Language terms covers all versions of UML. Individual entries will point out any distinctions that exist between versions.A* Abstract An indicator applied to a classifier (e.g., actor, class, use case) or to some …   Wikipedia

  • ColdFusion Markup Language — CFML redirects here. For the radio station, see CFML FM. Cold Fusion Markup Language (CFML) Paradigm(s) imperative, object oriented Appeared in 1995 Designed by Jeremy Allaire Developer Adobe System …   Wikipedia

  • Web template hook styles — This article is a supplement to the Delimiting and embedding strategies. On web templates the separation of concerns (content from presentation) require a low level separation strategy to isolate template language from output language. Template… …   Wikipedia

  • Extensible Application Markup Language — Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehlt Extensible Application Markup Language Dateiendung: .xaml MIME Type: application/xaml+xml …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”