Die Anzahl der Elemente eines Arrays in Smarty erhält man mit
{$myArray|@count}
oder mit
{@count($myArray)}
Damit lassen sich schöne Ausgaben zaubern, in dem man etwa prüft, ob ein Array Werte beinhaltet (z.B. nach einer DB-Abfrage) oder eben nicht und dann, je nachdem, die Ausgabe Benutzerfreundlich macht:
{if @count($myArray)>0}
Toll, es gibt {@count($myArray)} Einträge :)
{else}
Sorry, keine Einträge gefunden :(
{/if}
Die Angabe des @-Modifikators gibt an, dass nun eine PHP Funktion folgt. Intern wird also die PHP-Funktion count aufgerufen und dessen Rückgabe dann eingesetzt und benutzt.
Aber aufpassen: Wenn die $security Variable auf true steht, dann muss jede PHP-Funktion, die man so benutzen möchte, auch im $security_settings[‚MODIFIER_FUNCS‘]-Array stehen, sonst funktioniert der Aufruf nicht!
Das @ kann man weglassen beim {if} in smarty.
P.S.
vgl. Smarty Doku {if} Beispiel 7.8
{* einbetten von php Funktionsaufrufen (‚gt‘ steht für ‚grösser als‘) *}
{if count($var) gt 0}
…
{/if}
Funktioniert leider so nicht. Es gbit:
{$var|@count}