Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Smarty
Форумы портала PHP.SU » » Вопросы новичков » Smarty

Страниц (1): [1]
 

1. nordghost - 26 Декабря, 2012 - 16:39:01 - перейти к сообщению
Здрасвуйте. Итак столкнулся с проблемкой

Подключил Smarty подгрузил в него index.tpl

В котором есть меню:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a href='?action=index'>главная</a>
  3. <a href='?action=users'>пользователи</a>
  4. <a href='?action=cathegories'>категории</a>
  5. <a href='?action=banners'>баннера</a>
  6. <a href='?action=modules'>модули</a>
  7. <a href='?action=widgets'>виджеты</a>
  8. <a href='?action=faq'>faq</a>
  9.  


В этом же index.tpl есть строка:

{$content}

так вот как мне сделать чтобы на место $content подгружались *.tpl файлы в зависимость от Get переменной то есть Сделал например клик по слову - пользователи и на место content стал users.tpl.

Заранее всем спасибо!
2. KingStar - 26 Декабря, 2012 - 17:07:47 - перейти к сообщению
я могу помочь саветом - не использовать шаблонизаторы Радость
3. nordghost - 26 Декабря, 2012 - 17:13:31 - перейти к сообщению
Не могу не юзать - на работе напрягают говорять давай либо Yii юзай либо шаблонизатор прикручивай!
4. phpnovichok - 26 Декабря, 2012 - 17:22:47 - перейти к сообщению
Юзайте Yii.
5. pettson - 26 Декабря, 2012 - 21:07:47 - перейти к сообщению
{include} http://www[dot]smarty[dot]net/docsv2/ru/[dot][dot][dot]tion[dot]include[dot]tpl

CODE (text):
скопировать код в буфер обмена
  1. <html>
  2.  <head>
  3.   <title>{$title}</title>
  4.  </head>
  5.  <body>
  6.   {include file='page_header.tpl'}
  7.   {* тут идёт тело шаблона *}
  8.   {include file="$tpl_name.tpl"} <-- заменит $tpl_name его значением
  9.   {include file='page_footer.tpl'}
  10.  </body>
  11. </html>
6. nordghost - 27 Декабря, 2012 - 00:21:45 - перейти к сообщению
Весьма!
7. sKaa - 27 Декабря, 2012 - 03:28:22 - перейти к сообщению
KingStar пишет:
я могу помочь саветом - не использовать шаблонизаторы Радость

Имхо, а я могу сказать ТСу : пользуйтесь если вам удобно. Если неудобно, но надо - пишите свои более легкие решения чем тот же Smarty.

KingStar, эта тема - холивар.
Предположим у меня есть класс View, который, как мы знаем, ответственный за вывод страниц пользователю. View как правило, будь то даже Yii цепляет шаблоны из файлов (вьюшек). Расширение файла шаблона tpl, html или txt роли никакой не играет.
Интересно, можно ли считать View позорным для вас словом "Шаблонизатор", если он так или иначе работает с шаблонами страниц?
А теперь, объясните мне пожалуйста с какого момента View перестает быть View и становится ужасным словом : "ШАБЛОНИЗАТОР". А я знаю! С того момента, как мне захочется ввести в шаблоне свой, нативный синтаксис.
К примеру :
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <script type="javascript" src="{{=PATH . DS . '/js/jquery.js'; }}" .. ></script>
  3.  

Ммм. Кому бы из сущностей поручить это нелегкое дело - распарсить шаблон???
А точно! Пусть этим займется View, т.к плодить позорный класс Template, ради целостности View несколько глупо.
Выходит, теперь нам необходимо добавить пару строчек в то место, где во View цепляется шаблон.
Соответственно :
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. ...
  4. $arraySearch = array('{{', '}}');
  5. $arrayReplace= array('<?', '?>');
  6. str_replace($arraySearch , $arrayReplace, ...имя_переменной_в_которую_мы_запихнули_шаблон_для_View ..);


KingStar, а теперь, если можно, вопрос лично Вам : "Где я тут пригрешил и повинен ли я смерти за это? " - Выходит же, что у меня тоже теперь "ШАБЛОНИЗАТОР", верно?

 

Powered by ExBB FM 1.0 RC1