1 Отредактировано Ярослав (28.09.2016 19:03:26)

Тема: Глобальные переменные в smarty

Здравствуйте!
У нас в шаблонах будут работать глобальные переменные?
Делаю в layout.tpl  инициализацию переменных, но они не видны в других местах:

{assign var=theme_mode value="catalog" scope="root"}
{assign var=theme_x value=100 scope="global"}
{assign var=theme_y value=100 scope="global"}
{assign var=theme_width value=200 scope="global"}

и root пробовал и global. Просто хотелось часть настроек скрыть, не выводить их в модуле настроек шаблона.

2

Re: Глобальные переменные в smarty

В смарти все переменные живут в рамках одного объекта Smarty. Во время рендеринга страницы каждый блок рендерится в своем экземпляре Smarty.

В вашем случае наверное будет удобнее воспользоваться общим объектом приложения APP, если вы хотите настройки в layout.tpl задавать.

{$app->custom_var1="123"}
{$app->custom_var2="456"}

Где нужно, просто используйте: {$app->custom_var1}

Такой объект будет во всех шаблонах общим.

А еще у нас есть THEME_SETTINGS - рекомендую конечно его использовать дня глобальных настроек шаблона.
https://readyscript.ru/dev-manual/dev_templates.html

Повысить оценку Понизить оценку

Re: Глобальные переменные в smarty

Спасибо!
Пошел читать мануал.