ZPT Basics (part 2) - A Little Male Bonding (
Page 2 of 9 )
Variables are the bread and butter of any programming language - and TAL
is no exception. In TAL, variables are defined via the special "define"
attribute, which must be provided with both a variable name and a value
(which can be any valid TALES expression). Let's take a look at a simple
example, which demonstrates:
<h2>The name's <i tal:define="name string:Bond, James Bond"
tal:content="string:$name">name here</i>.</h2>
Here's how Zope renders it:
The name's Bond, James Bond.
In this case, the "define" attribute is used to define a variable named
"name", and assign it the value "Bond, James Bond". The "string" keyword
in the expression is used to indicate that the following text is - well
- a string.
<i tal:define="name string:Bond, James Bond" ... >name here</i>
This value may then be accessed using a TAL "content" or "replace"
attribute, in combination with the variable name (which must be prefixed
by a dollar ($) symbol).
<i ... tal:content="string: $name">name here</i>
You can even set variable values dynamically, by using TALES expressions
instead of hard-wired string values. Consider the following example,
which
illustrates:
<h1>The name's <i tal:define="whoami template/title_or_id"
tal:content="string:$whoami">name here</i>.</h1>
Here's the output (assuming that the page title was "Agent007"):
The name's Agent007.