Есть CMS.
Хочу, что бы в шаблоне index.tpl.php был такой код
<div>{$header}</div>
<div>{foreach from $news....}</div>
а index.php его обрабатывал так:
1. В {$news} загоняю массив строк (новостей).
2. А в {$header} мне нужно загнать шаблон (header.tpl.php).
Все хорошо - ведь есть же функция fetch, НО в дочернем шаблоне header.tpl.php тоже есть переменные для подстаноки ({$menu} к примеру) и по моему предположению просто надо их так же ассигнировать ($smarty -> assign) в родительском файле (index.php)...
В общем суть - вложенные до бесконечности щаблоны, данные для переменных которых задаются в 1 файле (в идеале конечно в разных для каждого шаблона, но к сожалению я пока не придумал как это сделать).
Гуглил - нифига, гуглил на форуме - нифига.
Очень критичная проблема.
1. metra - 09 Февраля, 2011 - 08:42:37 - перейти к сообщению
2. grefon - 09 Февраля, 2011 - 13:20:04 - перейти к сообщению
Как-то вообще не понял в чем проблема. Попробуйте сформулировать вопрос в форме "Как сделать так, чтобы ......".
3. metra - 09 Февраля, 2011 - 14:14:12 - перейти к сообщению
Попробую.
Как сделать так, что бы имея файлы header.tpl.php, login_form.tpl.php, news.tpl.php, content.tpl.php, каждый из которых отвечает за вывод определенного типа информации из БД, либо просто вписываемого посредством assign.
И все этим шаблоны являются дочерними к другому шаблону и вставляются как переменные. К примеру содержание главного шаблона:
<div>{$header}</div>
{$login_form}
и т.п.
Как мне написать PHP-файл который будет выводить этот главный шаблон? И написать его так, что бы все переменные, используемые в дочерних шаблонах, я ассигнил в файле главного шаблона (не в tpl, а там где вызываю display).
Если ассигнить $smarty -> fetch ("header.tpl.php") и т.п. Переменные дочерних шаблонов не вставляются. Так как они вставляются только те, которые на момент display() заассигнуты... В общем как то так...
Как сделать так, что бы имея файлы header.tpl.php, login_form.tpl.php, news.tpl.php, content.tpl.php, каждый из которых отвечает за вывод определенного типа информации из БД, либо просто вписываемого посредством assign.
И все этим шаблоны являются дочерними к другому шаблону и вставляются как переменные. К примеру содержание главного шаблона:
<div>{$header}</div>
{$login_form}
и т.п.
Как мне написать PHP-файл который будет выводить этот главный шаблон? И написать его так, что бы все переменные, используемые в дочерних шаблонах, я ассигнил в файле главного шаблона (не в tpl, а там где вызываю display).
Если ассигнить $smarty -> fetch ("header.tpl.php") и т.п. Переменные дочерних шаблонов не вставляются. Так как они вставляются только те, которые на момент display() заассигнуты... В общем как то так...