Seit längerem hab ich eine Möglichkeit gesucht möglichst einfach HTML Bausteine zufällig rotieren zu lassen. Es versteht sich von selbst das der Aufwand möglichst gering und die Änderungen ausschließlich in der Termplate Ebene statt finden sollten.
Smarty gibt die Möglichkeit von Hause aus nicht her. Ein Modul für smarty zu schreiben war ich zu faul. Darum folgt die schnelle Lösung.
1
| {php}$this->_tpl_vars['intRandNumber']= rand(2,5);{/php} |
Nachtrag: Noch eleganter ist es natürlich gar kein PHP zu verwenden und die Variable in Smarty folgendermaßen zuzuweisen:
1
| {assign var="intRandNumber" value=2|rand:5} |
Danke an Lars für den Hinweis!
Diese Zeile fügt, in einem Smarty Template, eine Variable hinzu die mit einer zufälligen Zahl zwischen 2 und 5 gefüllt wird. Auf diese Variable kann im Template wie gewohnt mit {$intRandNumber} zugegriffen werden.
Eine Möglichkeit diese Zahl zu nutzten wäre eine elseif Struktur.
1
2
3
4
5
6
7
8
| {* Ostern *}
{if $intRandNumber == 2}
{include file="../templates/html/include/teaser/20090220_ostern.tpl"}
{* Garten *}
{elseif $intRandNumber == 3}
{include file="../templates/html/include/teaser/20090220_garten.tpl"}
{/if} |
Einfach, Schnell und sehr praktisch.
Quellen: PHP rand(), smarty