Smarty не ставит global scope переменную
Товарищи, обнаружил странное поведение при попытке задать глобальной переменную в Smarty темплейте!
здесь http://www.smarty.net/docs/en/language.function.assign.tpl сказано
Example 7.13. {assign} a global variable
A global variable is seen by all templates.
{assign var=foo value="bar" scope="global"}
{assign "foo" "bar" scope="global"} {* short-hand *}
указываю в index.html не встречающуюся больше нигде переменную $ktblog
{assign var=ktblog value="MMM" scope="global"}
затем в post.html
пытаюсь вывести переменную
{$ktblog}
и она пуста, как же так? Индекс явно раньше должен обрабатываться.
P.S. Использую хостинг вебасиста.
здесь http://www.smarty.net/docs/en/language.function.assign.tpl сказано
Example 7.13. {assign} a global variable
A global variable is seen by all templates.
{assign var=foo value="bar" scope="global"}
{assign "foo" "bar" scope="global"} {* short-hand *}
указываю в index.html не встречающуюся больше нигде переменную $ktblog
{assign var=ktblog value="MMM" scope="global"}
затем в post.html
пытаюсь вывести переменную
{$ktblog}
и она пуста, как же так? Индекс явно раньше должен обрабатываться.
P.S. Использую хостинг вебасиста.
10 ответов
Нет, сначала генерируется основное содержимое страницы, и только потом оно вставляется в index.html. Поэтому это основное содержимое не может ничего "знать" о том, что объявлено в index.html, ведь его сначала готовят отдельно и только потом добавляют в основной шаблон.
P.S. вроде отвечал на ваш коммент, а вышел отдельный ответ на тему, сорри.
Вложено будет значение переменной {$content}, а её содержимое формируется контроллером, который запускается при обработке конкретного URL.
Как можно красиво выйти из положения?
blog_author=Vasya Pupkin