Область видимости переменной

jenia

Новичок
Область видимости переменной

У меня в smarty есть два шаблона: index.tpl, test.tpl . Они содержат такой код:
index.tpl:
{include file='test.tpl'}
{$s_addr}

test.tpl:
{assign var="s_addr" value="http://`$smarty.server.SERVER_NAME`/test"}

То есть, в index.tpl подключается test.tpl, в котором объявляется переменная s_addr и эта переменная в свою очередь должна использоватся в index.tpl. Но в index.tpl она не видна. Как сделать так, чтобы переменная была видна в index.tpl ?
 

zerkms

TDD infected
Команда форума
jenia
создавать данные не в шаблонах, а в скриптах
 

jenia

Новичок
В принципе ты прав. Но всё таки, можно ли сделать как я описал?
 

zerkms

TDD infected
Команда форума
всё таки попробуй переделать по-человечески, ибо нормального объяснения такой вот реализации я придумать не могу например
 

jenia

Новичок
У меня, в общем-то, проблема с навигацией: один и тот же шаблон используется и для сайта и для подкаталогов сайта. И ссылки в этом шаблоне получаются неправильными, когда использушь его для подкаталога. Вот я и хотел приинклюдить к шаблону файл, который бы выдавал мне адрес корня сайта, и относительно его, я бы уже и ориентировался.
Можно конечно использовать $_SERVER['DOCUMENT_ROOT'] для определения корня сайта, но тогда корневая папка сайта должна совпадать с корневой папкой сервера. На хостинге так и есть, а вот дома нет. Хочется, чтобы было универсально. Как поступить в этой ситуации?
 

zerkms

TDD infected
Команда форума
можно определить константу для хранения пути относительно корня сайта и использовать её в шаблонах
можно генерировать урлы специальным генератором
 

0xHH

Новичок
Вот я и хотел приинклюдить к шаблону файл, который бы выдавал мне адрес корня сайта, и относительно его, я бы уже и ориентировался.
Шаблон должен заниматься выводом данных. Данные должны генерироваться php скриптами => php скрипт должен генерировать соответствующие урлы и отдавать их через параметры в smarty.
 

jenia

Новичок
Да, конечно же вы оба правы. Так и сделал, адрес формируется в скрипте, а не в шаблоне. Просто, если бы адрес можно было бы формировать в шаблоне - было бы чуть легче. Но я понимаю, что это извращение. Все спасибо.
 
Сверху