Многоуровневое меню, где каждый уровень - отдельный список — различия между версиями
Материал из Umicms
Sv (обсуждение | вклад) |
Sv (обсуждение | вклад) |
||
Строка 45: | Строка 45: | ||
− | < | + | <pre> |
<?php | <?php | ||
Строка 63: | Строка 63: | ||
?> | ?> | ||
− | </ | + | </pre> |
Версия 12:32, 1 сентября 2009
Как сделать многоуровневое меню, где каждый уровень - отдельный список?
Для решения этой задачи придется использовать не совсем корректный способ. Не рекомендуется использовать его для меню с большой вложенностью.
В шаблоне дизайна пропишите макрос % content menu('sl')%, где sl - шаблон из папки tpls/content/menu/ вида:
<?php $FORM = Array(); $FORMS['menu_block_level1'] = <<<END % lines% END; $FORMS['menu_line_level1'] = <<<END END; $FORMS['menu_line_level1_a'] = <<<END % sub_menu% END; $FORMS['menu_block_level2'] = <<<END <ul id="submenu">% lines%</ul> % content menu('sl2',% pid%)% END; $FORMS['menu_line_level2'] = <<<END <li><a href="% link%">% text%</a></li> END; $FORMS['menu_line_level2_a'] = <<<END <li class="active"><a href="%link%">% text%</a></li> END; ?>
Обратите внимание на макрос % content menu('sl2',% pid%)% из блока ['menu_block_level2']. В нем, с помощью макроса % pid% мы подхватываем идентификатор текущей (то есть активной) страницы и, таким образом, указываем макросу родительский элемент, от которого следует выводить страницы. Шаблон tpls/content/menu/sl2.tpl должен иметь вид:
<?php $FORM = Array(); $FORMS['menu_block_level1'] = <<<END <ul id="submenu">% lines%</ul> END; $FORMS['menu_line_level1'] = <<<END <li><a href="% link%">% text%</a></li> END; $FORMS['menu_line_level1_a'] = <<<END <li class="active"><a href="% link%">% text%</a></li> END; ?>