Kapitel 5. Variablen-Modifikatoren
Variablen-Modifikatoren können auf alle Variablen angewendet
werden, um deren Inhalt zu verändern. Dazu hängen sie einfach
ein | (Pipe-Zeichen) und den Modifikatornamen an
die entsprechende Variable an. Ein Modifikator über Parameter in
seiner Arbeitsweise beinflusst werden. Diese Parameter werden dem
Modifikatorname angehängt und mit : getrennt.
Beispiel 5-1. Modifikator Beispiel {* Modifikator auf eine Variable anwenden *}
{$titel|upper}
{* Modifikator mit Parametern *}
{$title|truncate:40:"..."}
{* Modifikator auf Funktionsparameter anwenden *}
{html_table loop=$myvar|upper}
{* mit Parametern *}
{html_table loop=$myvar|truncate:40:"..."}
{* formatierung einer Zeichenkette *}
{"foobar"|upper}
{* mit date_format das aktuelle Datum formatieren *}
{"now"|date_format:"%Y/%m/%d"}
{* modifier auf eigene Funktion anwenden *}
{mailto|upper address="me@domain.dom"} |
|
Wenn Sie einen Modifikator auf ein Array anwenden, wird dieser auf
jeden Wert angewandt. Um zu erreichen, dass der Modifkator auf den
Array selbst angewendet wird, muss dem Modifikator ein
@ Zeichen vorangestellt werden. Beispiel:
{$artikelTitel|@count} (gibt die Anzahl Elemente
des Arrays $artikelTitel aus.)
Modifikatoren können aus Ihrem $plugins_dir automatisch
geladen (sehen Sie dazu auch Naming Conventions) oder
explizit registriert werden (register_modifier).
Zudem können alle PHP-Funktionen implizit als Modifikatoren
verwendet werden. (Das Beispiel mit dem @count
Modifier verwendet die Funktion 'count()' von PHP und keinen Smarty
Modifikator) PHP Funktionen zu verwenden eröffnet zwei Probleme:
erstens: manchmal ist die Parameter Reiehnfolge nicht
erwünscht. ({"%2.f"|sprintf:$float} funktioniert
zwar, sieht aber als
{$float|string_format:"%2.f"} das durch Smarty
geliefert wird, besser aus. Zweitens: wenn $security auf TRUE gesetzt ist,
müssen alle verwendeten PHP Funktionen im
$security_settings['MODIFIER_FUNCS']-Array enthalten sein.
Siehe auch register_modifier(), register_function(), Smarty durch Plugins erweitern und Variablen-Modifikatoren.
capitalize (in Grossbuchstaben schreiben)
Wird verwendet um den Anfangsbuchstaben aller Wörter in der
Variable gross (upper case) zu schreiben.
Beispiel 5-2. capitalize (in Grossbuchstaben schreiben)
<?php
$smarty->assign('articleTitle', 'diebe haben in norwegen 20 tonnen streusalz entwendet.');
?>
|
Wobei das Template wie folgt aussieht:
{$artikelTitel}
{$artikelTitel|capitalize} |
AUSGABE:
diebe haben in norwegen 20 tonnen streusalz entwendet.
Diebe Haben In Norwegen 20 Tonnen Streusalz Entwendet.</programlisting> |
|
Siehe auch lower (in
Kleinbuchstaben schreiben) upper (in Grossbuchstaben
umwandeln)