2010-04-12 3 views
1

У меня есть шаблон smarty, который я хочу отобразить случайное предложение при каждой перезагрузке. Я мог бы сделать это с этим:Smarty: отображает случайное предложение из массива

в PHP файле:

$sentences = array('Hello you', 'Hi mate', 'Welcome'); 
shuffle($sentences); 
$smarty->assign('sentence', $sentences[0]); 

в файле шаблона:

<h1>{$sentence}</h1> 

Можно ли все это сделать в шаблоне вместо этого? Поскольку это не совсем программирования логики, но больше логики представления, я хотел бы все это в шаблоне, как так:

<h1>{'Hello you', 'Hi mate', 'Welcome'| selectRandom }</h1> 

Что-то вроде этого?

ответ

1

реализовать Smarty функцию selectRandom затем :-)

{selectRandom(1, 2, 3, ...)} 
+0

Да, я надеялся, что для этого уже есть какая-то функция. – Martind

+0

Я не думаю, что есть более лаконичный способ сделать это. возможно, можно использовать ** только smarty builtin ** функции, но я уверен, что это будет длинная длинная строка с большим количеством грязных хаков :-) – zerkms

4

Вы можете написать что-то вроде этого (source):

{присвоить вар = значение randomindex = $ Фото | @array_rand}

< img src = "./ images/{$ Images. $ Randomindex}" width = "100" height = "100" border = "0" alt = "Случайное изображение" title = "Случайное изображение" >