biz_zon (06.12.2009, 13:48) писал:
Спасибо, так заработало. Но для окончательного решения проблемы надо понять, каким образом в функцию
function z_menu ($params = array()) {
$widget = new zwidget_pagemenu('pagemenu', $params);
echo $widget->display();}
передать параметр 'pagemenu' - ведь в заголовке функции его нет? Если я правильно понял, именно он помогает движку разобраться, с каким меню работать, если их несколько.
pagemenu это идентификатор виджета, а не меню. Не обязательно использовать функцию z_menu, можно создать виджет и вывести его напрямую:
<?php
$widget = new zwidget_pagemenu('menu', array());
echo $widget->display();
?>
вместо вызова функции. Вместо 'pagemenu' можно указывать любой текст (уникальный идентификатор виджета) или
null (идентификатор будет уникальным вида
widget-4).
biz_zon (06.12.2009, 13:48) писал:
По логике, за это должен отвечать параметр 'menuid', но в зебре это просто переключатель количества выводимых пунктов.
menuid указывает на тип меню, пункты которого нужно выводить. Если указать
false, то будут выводиться все пункты. Если у страницы не указан тип меню, то тип меню страницы будет
main, проэтому в коде в качестве примера приводится
false и
main.
biz_zon (06.12.2009, 13:48) писал:
Кроме того, непонятно, зачем в коде дважды передается 'type'?
Увы, банальная опечатка.
biz_zon (06.12.2009, 13:48) писал:
Извините, если надоел вопросами, но движок интересный, хочу понять, способен ли он вместе со мной (или я вместе с ним) реализовать совершенно конкретные замыслы. Например, написал в шаблоне
<ul id="menu">
<li><a href="index.html"><b>На главную</b></a></li>
<li><a href="section-1.html"><b>Раздел 1</b></a></li>
<li><a href="section-2.html"><b>Раздел 2</b></a></li>
<li><a href="section-3.html"><b>Раздел 3</b></a></li>
<li><a href="section-4.html"><b>Раздел 4</b></a></li>
</ul>
, чтобы потом ссылки на каждый из разделов передать в отдельные виджеты или функции z_menu через пaраметр 'child_of'=>'/section-*.html', но куда это вписывать
?
Добавить id к самому ul так просто не получится (можно наследоваться от виджета меню, если требуется), но следующий код:
<?php
$widget = new zwidget_pagemenu('menu', array(
'before_widget' => '<div id="menu">',
'after_widget' => '</div>',
'childs_of' => '/section', // все
));
echo $widget->display();
?>
формирует этот html (отступы добавлены для наглядности):
<div id="menu">
<ul>
<li class="page_item"><a href="/section/stranitsa1/">Страница1</a></li>
<li class="page_item"><a href="/section/stranitsa2/">Страница2</a></li>
</ul>
</div>
Вместо фильтров вида /section-*.html лучше использовать menuid.
Если не нужны class="page_item", то можно создать свой виджет, унаследовавшись от виджета меню, и переписать метод, который определяет классы для пункта меню.