Smarty получить данные из $ глобальных - PullRequest
4 голосов
/ 15 октября 2010

Если вы использовали {debug}, чтобы увидеть, к каким данным я могу получить доступ на странице.Теперь все, что мне нужно, находится в {$ GLOBALS}, как

   current_user => Array (17)
      id => 3759
      user_name => bla
      email => bla@bla.com
      group => Array (2)
        id => users
        caption => Users

Но как мне получить данные, которые нужно показать на моей странице?Понравился адрес электронной почты?

Ответы [ 2 ]

2 голосов
/ 15 октября 2010

Если у вас есть доступ только к файлу шаблона, вы можете присвоить $GLOBALS smarty var $globals следующим образом:

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

$this относится к активному объекту Smarty.

Лучший способ реализовать это при наличии доступа к сценарию PHP:

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

Файл шаблона:

{$globals.somevar}

При желании использовать фильтр, например:

{$globals.somevar|escape:html}
0 голосов
/ 15 октября 2010

Я думаю, это может сработать:

{php}

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

{/ php}

(Это не лучший способ. Вам нужно убедиться, что данные экранированы перед выводом, чтобы вы могли использовать htmlentities () или лучше, чтобы назначить данные в вашем коде, см .: http://www.smarty.net/manual/en/api.assign.php)

...