2010-10-15 7 views
4

Si j'ai utilisé {debug} pour voir à quelles données je peux accéder dans une page. Maintenant, les choses que je dois rester dans {$ de GLOBALS} comme

current_user => Array (17) 
     id => 3759 
     user_name => bla 
     email => [email protected] 
     group => Array (2) 
     id => users 
     caption => Users 

Mais comment j'obtenir les données que je dois montrer sur ma page? Comme l'adresse e-mail?

Répondre

2

Si vous avez accès uniquement au fichier de modèle, vous pouvez attribuer à un $GLOBALS Smarty var $globals comme ceci:

{php}$this->assign('globals', $GLOBALS);{/php} 
{$globals.somevar} 

$this fait référence à l'o Smarty actif bjecter.

Une meilleure façon de mettre en œuvre, lors de l'accès au script PHP, serait:

<?php 
$somevar = 'this is a test'; 
$tpl = new Smarty; 
$tpl->assign('globals', $GLOBALS); 
$tpl->display('example.tpl'); 
?> 

fichier modèle:

{$globals.somevar} 

utiliser en option un filtre comme:

{$globals.somevar|escape:html} 
0

Je suppose que cela peut fonctionner:

{php}

echo $ GLOBALS [ 'current_user'] [ 'email'];

{/ php}

(Ce n'est pas la meilleure façon. Vous devez vous assurer que les données sont échappé avant la sortie, de sorte que vous pouvez utiliser htmlentities() ou mieux insérer les données dans votre code , voir: http://www.smarty.net/manual/en/api.assign.php)