Manual
2.1 tal:define
Ten atrybut definiuje jedną lub więcej zmiennych, które mogą być użyte później w szablonie.
Tworzenie skrótu długiej ścieżki :
<span tal:define="global destname path/to/existing/variable" />
Tworzenie łańcucha znaków wewnątrz szablonu :
<span tal:define="global destname string:some string" />
Definiowanie więcej niż jednej zmiennej naraz :
<span tal:define="global fname string:paul; lname string:dupond" />
Definiowanie łancucha znaków zawierającego inną zmienną :
<span tal:define="global hello string:hello $fname welcome on this page" />
Mała sztuczka korzystająca z buforu wyjącia :
<span tal:define="global hello">hello ${fname} welcome on this page</span>
Możesz użyć tal:define razem z innymi atrybutami, będzie on wówczas wykonany przed nimi.
W powyższych przykładach tag span nie będzie wyświetlony ponieważ nie ma on żadnej zawartości. Nawet ostatni przykład nie wyświetli komunikatu ponieważ zmienna hello przechwyci go.
Z drugiej strony:
<span tal:define="hello string:hello ${fname} welcome on this page" tal:content="hello" />
Powyższy przykład zarówno ustawi zmienną hello oraz wyświetli ją.
<span tal:define="hello" tal:content="hello"> hello ${fname} welcome on this page </span>
W powyższych przykładach możesz użyć słowa global przed nazwami zmiennych. W PHPTAL można definiować zarówno zmienne globalne jak i lokalne.
Zmienna globalna jest widoczna w dowolnym węźle (elemencie) szablonu oraz w wywołanych makrach.
<span tal:define="global hello string:hello world"/> <p tal:content="hello"/>
Zmienna lokalna jest widoczna tylko wewnątrz znacznika, w którym została zdefiniowana :
<span tal:define="hello string:hello world"/> <p tal:content="hello"/> <!-- spowoduje pojawienie sie bledu niezdefiniowanej zmiennej -->