2010-02-12 13 views
0

Existe-t-il un moyen d'utiliser un appel de méthode d'un objet comme cible d'un conditionnel dans un modèle Smarty? Par exemple concret, j'ai un objet $user avec une méthode loggedIn(). Je veux utiliser cette méthode pour afficher les informations supplémentaires si l'utilisateur est connectéMéthode en tant que cible de {if} dans Smarty

je peux affecter la valeur de retour de cette méthode à une variable temporaire et l'utiliser comme la cible de {if}.

{user->loggedIn assign="loggedIn"} 
{if $loggedIn} 
    // show extra info 
{/if} 

Y a-t-il un moyen d'ignorer cette étape intermédiaire? Je voudrais quelque chose comme ça (ne fonctionne pas):

{if user->loggedIn} 
    // show extra info 
{/if} 

Je ne peux pas trouver des exemples d'utilisation des objets comme celui-ci dans la documentation de Smarty.

Répondre

1

Utilisation assign_by_ref au lieu de register_object:

$smarty->assign_by_ref('user', $user); 

Ensuite, vous pouvez accéder aux méthodes:

{if $user->loggedIn()} 
    // show extra info 
{/if} 
+0

Exactement ce que je cherchais, merci! –