2010-04-12 7 views
1

J'ai un template smarty, que je veux afficher une phrase aléatoire sur chaque rechargement. Je pouvais le faire avec ceci:Smarty: Afficher une phrase aléatoire du tableau

dans le fichier php:

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

dans le fichier modèle:

<h1>{$sentence}</h1> 

Est-il possible de faire tout cela dans le modèle à la place? Étant donné que cette logique n'est pas exactement la programmation mais plus une logique de présentation, je voudrais tout dans le modèle comme ceci:

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

Quelque chose comme ça?

Répondre

1

mettre en œuvre selectRandom fonction Smarty alors :-)

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

Eh bien, j'espérais qu'il y avait déjà une fonction pour faire ça. – Martind

+0

Je ne pense pas qu'il existe une façon plus laconique de le faire. Peut-être est-il possible d'utiliser ** seulement des fonctions smarty intégrées ** mais je parie que ce sera une longue et longue chaîne avec beaucoup de hacks sales :-) – zerkms

4

Vous pouvez écrire quelque chose comme ça (source):

{assign var = valeur randomindex = $ Images | @array_rand}

< img src = "./ images/{$ Images. $ Aléatoireindex}" width = "100" height = "100" border = "0" alt = "Image aléatoire" title = "Image aléatoire" >