What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Table of Contents
Smarty hat verschiedene Variablentypen, welche weiter unten detailliert beschrieben werden. Der Typ der Variable wird durch das Vorzeichen bestimmt.
Variablen können in Smarty direkt ausgegeben werden oder als Argumente für Funktionsparameter und Modifikatoren sowie in Bedingungen verwendet werden. Um eine Variable auszugeben, umschliessen Sie sie mit Trennzeichen, so dass die Variable das einzige enthaltene Element ist. Beispiele:
{$Name} {$Kontakte[zeile].Telefon} <body bgcolor="{#bgcolor#}">
Variablen die in einem PHP Skript assigned mit zugewiesen wurden, müssen
mit eine Dollar Zeichen $
versehen werden. Auf
die gleiche Art werden Variablen ausgegeben, die im Template mit {assign} zugewiesen
wurden.
Example 4.1. zugewiesene Variablen
PHP-Skript
<?php $smarty = new Smarty; $smarty->assign('vorname', 'Andreas'); $smarty->assign('nachname', 'Halter'); $smarty->assign('treffpunkt', 'New York'); $smarty->display('index.tpl'); ?>
Mit folgendem index.tpl:
Hallo {$vorname} {$nachname}, schön, dass Du es einrichten kannst. <br /> {* das hier funktioniert nicht, da bei Variablennamen auf Gross-Kleinschreibung geachtet werden muss: *} Diese Woche findet das Treffen in {$treffPunkt} statt. {* aber das hier funktioniert: *} Diese Woche findet das Treffen in {$treffpunkt} statt.
Ausgabe:
Hallo Andreas Halter, schön, dass Du es einrichten kannst. <br /> Diese Woche findet das Treffen in statt. Diese Woche findet das Treffen in New York statt.
Sie können auch auf die Werte eines in PHP zugewiesenen assoziativen Arrays zugreifen, indem Sie den Schlüssel (Indexwert) nach einem '.'-Zeichen (Punkt) notieren.
Example 4.2. Zugriff auf Variablen eines assoziativen Arrays
<?php $smarty->assign('kontakte', array('fax' => '555-222-9876', 'email' => 'zaphod@slartibartfast.example.com', 'telefon' => array('privat' => '555-444-3333', 'mobil' => '555-111-1234') ) ); $smarty->display('index.tpl'); ?>
Bei folgender index.tpl:
{$kontakte.fax}<br /> {$kontakte.email}<br /> {* auch multidimensionale Arrays können so angesprochen werden *} {$kontakte.telefon.privat}<br /> {$kontakte.telefon.mobil}<br />
Ausgabe:
555-222-9876<br /> zaphod@slartibartfast.example.com<br /> 555-444-3333<br /> 555-111-1234<br />
Arrays können - ähnlich der PHP-Syntax - auch über ihren Index angesprochen werden.
Example 4.3. Zugriff über den Array Index
<?php $smarty->assign('kontakte', array( '555-222-9876', 'zaphod@slartibartfast.example.com', array('555-444-3333', '555-111-1234') )); $smarty->display('index.tpl'); ?>
Bei folgendem index.tpl:
{$kontakte[0]}<br /> {$kontakte[1]}<br /> {* auch hier sind multidimensionale Arrays möglich *} {$kontakte[0][0]}<br /> {$kontakte[0][1]}<br />
Ausgabe:
555-222-9876<br /> zaphod@slartibartfast.example.com<br /> 555-444-3333<br /> 555-111-1234<br />