Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Libraries > Smarty. Передача переменных в {include}


Автор: katala 19.6.2008, 00:14
допустим есть темпелей навигатора navagator.tpl
Код

<a href="?{$param_name}=1">First</a>&nbsp;
<a href="index.php?{$param_name}={$Prev_URL}{$query_string}">Prev</a>
&nbsp;{$Page_Number}&nbsp;of&nbsp;{$Total_Pages}&nbsp; 
<a href="?{$param_name}={$Next_URL}{$query_string}">Next</a>&nbsp;
<a href ="index.php ?{$param_name}={$Last_URL}{$query_string}">Last</a>


на странице есть два навигатора темплейты которых инклудятся на главную страницу

Код

...
{include file='navigator.tpl' param_name='album_page'}

...

{include file='navigator.tpl' param_name='photo_page'}
...


Соответсвенно, что теперь необходио проставить значения  переменных для каждого навигатора. можно ли это сделать, или необходимо что бы для каждого навигатора был темплейт с уникальными переменными? Если ли для задач такого рода какой-нибудь механизм?

Автор: mikla 19.6.2008, 08:45
зачем уникальные имена ? 
подключай один и тож же только передавай ему разные значения переменных 
Код

{include file='navigator.tpl' param_name='photo_page' Last_URL=$Last_URL query_string=$query_string Prev_URL=$Prev_URL}


Автор: katala 19.6.2008, 09:42
если использовать 
Код

{include file='navigator.tpl' param_name='photo_page' Last_URL=$Last_URL query_string=$query_string Prev_URL=$Prev_URL}


то в темплейт будут вставлены просто значения. а мне необходимо потом там были переменные с такими именами. что бы потом а коде проставить уже значения для тих переменных

Код

...
$page->assign("Page_Number", $this->getPageNumber());
$page->assign("Total_Pages", $this->getTotalPages());
.....    


вопрос в том какой должен быть темплейт навигатора чтобы передав  в качестве параметра имя можно было там юзать переменную с таким именем?

Автор: HEXO4YXA 5.9.2008, 07:44
а почему нельзя сделать так? (понимаю, что тема наверное уже не актуальна..)
Код

{include file='navigator.tpl' param_name='photo_page' Last_URL=$Last_URL query_string=$query_string 
Prev_URL=$Prev_URL Page_Number=$Page_Number Total_Pages=$Total_Pages}


или проще засунуть эти параметры в ассоциативный массив и перед выводом темплейта присваивать просто одним параметром
Код

{include file='navigator.tpl' params=$params}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)