Page 1 of 1
Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 7:51 am
by SLX
Доброго времени суток, уважаемые!
Вот столкнулся с проблемкой:
Есть у меня меню, мне нужно вставить в один из параметров значение, которое я получаю в теге пользователя
Вот вид меню: {menu template='submenu-ul' show_root_siblings='0' start_page={тег_пользователя}}
Но почему- то, на странице он выдает лишь "}".
Может кто что подскажет?
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 8:11 am
by butcher_88
Вероятно потому что внутри {} еще одни скобки smarty не понимает, попробуйте что-то типа:
{тег_пользователя assign="user_tag_name"}
{menu template='submenu-ul' show_root_siblings='0' start_page="$user_tag_name"}
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 8:20 am
by SLX
Спасибо, но не работает. В таком случае он просто печатает значение php скрипта и всё. Меню не выводится.
Вот если что сам скрипт:
$pattern = preg_replace("/\/([a-z-*]+).*/","$1",$_SERVER['REQUEST_URI']);
return $pattern;
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 8:33 am
by SLX
Или что бы с этим не мучатся, можно ли выбрать с помощью средств ms получить алиас раздела в котором находимся в данный момент, при этом что бы, при переходе в дочерние разделы алиас бы оставался родительский.
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 8:49 am
by butcher_88
Или что бы с этим не мучатся, можно ли выбрать с помощью средств ms получить алиас раздела в котором находимся в данный момент, при этом что бы, при переходе в дочерние разделы алиас бы оставался родительский.
Думаю можно такую задачу решить в шаблоне меню. Оформление->Менеджер меню. По умолчанию там есть образцы шаблонов. Разберите их. Посмотрите там справку по доступным переменным, думаю пригодятся $node->current $node->parent.
В таком случае он просто печатает значение php скрипта и всё.
не совсем понял что выводится? Уверены что $pattern выводит нужный адрес? Если же говорить о тэге то можно изменить - так чтобы он создавал переменную смарти:
Code: Select all
global $gCms;
$smarty = &$gCms->GetSmarty();
$pattern = preg_replace("/\/([a-z-*]+).*/","$1",$_SERVER['REQUEST_URI']);
$startpage= $pattern;
$smarty->assign('startpage', $startpage);
Code: Select all
{тег_пользователя}
{menu template='submenu-ul' show_root_siblings='0' start_page="$startpage"}
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 8:52 am
by SLX
Спасибо огроменное!) Именно создания смарти переменной и не хватало(не знал как). Спасибо еще раз!) Всё работает)
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 10:06 am
by Fenik17
Это неверный подход.
Чтобы достать алиас предка уровня 0, лучше использовать такой тег:
Code: Select all
global $gCms;
$manager =& $gCms->GetHierarchyManager();
$node =& $manager->sureGetNodeByAlias( $gCms->variables['page_name'] );
while ($node->getLevel() > 0) { $node =& $node->getParentNode(); }
$content = $node->getContent();
$smarty->assign('startpage', $content->Alias());
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 12:54 pm
by SLX
А это сильно повлияет на скорость? Или на что то еще?
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 1:17 pm
by SLX
Кстати, а где можно документацию по этому делу почитать, а то везде довольно поверхностно описано?
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 4:18 pm
by butcher_88
http://www.smarty.net/manual/ru/index.php - русский мануал по smarty
http://www.cmsmadesimple.org/apidoc/ - документация по CMSMS сгенерированная phpDocumentor
http://wiki.cmsmadesimple.org/index.php/Developers_FAQ - FAQ
Немного все что знаю... Дополняйте.
А это сильно повлияет на скорость? Или на что то еще?
Думаю сильно, но первый вариант очень ненадежен.
Re: Из скрипта php в шаблон
Posted: Mon Jul 26, 2010 8:11 pm
by Fenik17
На скорости не должно заметно отразиться. По крайней мере, для невооруженного взглядя - вызываться же будет один раз на страницу. Другое дело, что стоило бы описать конечную задачу. Возможно, есть более подходящее решение.
Re: Из скрипта php в шаблон
Posted: Tue Jul 27, 2010 5:37 am
by SLX
Вся задача состоит в том, что при нажатии на пункт в меню в другом меню появлялись его подпункты.
Спасибо большое за мануалы=)
Re: Из скрипта php в шаблон
Posted: Tue Jul 27, 2010 6:52 am
by Fenik17
Так это (или почти это) есть в стандартных шаблонах. Можно посмотреть, как это выглядит?
Re: Из скрипта php в шаблон
Posted: Tue Jul 27, 2010 7:23 am
by SLX
_http://mirt.mnepomogli.ru
Кликаешь "Поликлиника" и там появится слева меню, вот его и мучаю))
Re: Из скрипта php в шаблон
Posted: Wed Jul 28, 2010 5:56 pm
by Fenik17
Еще полезная ссылка
http://wiki.cmsmadesimple.org/index.php/Share_your_tags_here
Там даже есть тег, аналогичный приведенному мной.