Многоуровневое меню, где каждый уровень - отдельный список — различия между версиями
Материал из Umicms
Sv (обсуждение | вклад) |
Alexei (обсуждение | вклад) |
||
(не показано 8 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Для решения этой задачи придется использовать не совсем корректный способ. Не рекомендуется использовать его для меню с большой вложенностью. | Для решения этой задачи придется использовать не совсем корректный способ. Не рекомендуется использовать его для меню с большой вложенностью. | ||
− | В шаблоне дизайна пропишите макрос % content menu(' | + | '''1.''' В шаблоне дизайна пропишите макрос '''%content menu('sl3', %pid%)%''', а в папку '''''~tpls/content/menu/''''' поместите шаблон '''sl.tpl''' со следующим кодом: |
− | + | <pre> | |
− | < | ||
<?php | <?php | ||
Строка 14: | Строка 8: | ||
$FORMS['menu_block_level1'] = <<<END | $FORMS['menu_block_level1'] = <<<END | ||
− | % lines% | + | %lines% |
END; | END; | ||
$FORMS['menu_line_level1'] = <<<END | $FORMS['menu_line_level1'] = <<<END | ||
− | + | <li><a href="%link%">%text%</a></li> | |
END; | END; | ||
$FORMS['menu_line_level1_a'] = <<<END | $FORMS['menu_line_level1_a'] = <<<END | ||
− | % sub_menu% | + | %sub_menu% |
END; | END; | ||
− | |||
− | |||
$FORMS['menu_block_level2'] = <<<END | $FORMS['menu_block_level2'] = <<<END | ||
− | <ul id="submenu">% lines%</ul> | + | <ul id="submenu">%lines%</ul> |
− | % content menu('sl2',% pid%)% | + | %content menu('sl2', 2, %pid%)% |
END; | END; | ||
+ | |||
$FORMS['menu_line_level2'] = <<<END | $FORMS['menu_line_level2'] = <<<END | ||
− | <li><a href="% link%">% text%</a></li> | + | <li><a href="%link%">%text%</a></li> |
END; | END; | ||
$FORMS['menu_line_level2_a'] = <<<END | $FORMS['menu_line_level2_a'] = <<<END | ||
− | <li class="active"><a href="%link%">% text%</a></li> | + | <li class="active"><a href="%link%">%text%</a></li> |
END; | END; | ||
?> | ?> | ||
− | </ | + | </pre> |
− | Обратите внимание на макрос % content menu('sl2',% pid%)% из блока ['menu_block_level2']. В нем, с помощью макроса % pid% мы подхватываем идентификатор текущей (то есть активной) страницы и, таким образом, указываем макросу родительский элемент, от которого следует выводить страницы. | + | Обратите внимание на макрос '''%content menu('sl2', 2, %pid%)%''' из блока ['menu_block_level2']. В нем, с помощью макроса '''%pid%''' мы подхватываем идентификатор текущей (то есть активной) страницы и, таким образом, указываем макросу родительский элемент, от которого следует выводить страницы. |
+ | '''2.''' Создайте шаблон '''''~tpls/content/menu/sl2.tpl''''' вида: | ||
− | < | + | <pre> |
<?php | <?php | ||
Строка 52: | Строка 46: | ||
$FORMS['menu_block_level1'] = <<<END | $FORMS['menu_block_level1'] = <<<END | ||
− | <ul id="submenu">% lines%</ul> | + | <ul id="submenu">%lines%</ul> |
END; | END; | ||
$FORMS['menu_line_level1'] = <<<END | $FORMS['menu_line_level1'] = <<<END | ||
− | <li><a href="% link%">% text%</a></li> | + | <li><a href="%link%">%text%</a></li> |
END; | END; | ||
$FORMS['menu_line_level1_a'] = <<<END | $FORMS['menu_line_level1_a'] = <<<END | ||
− | <li class="active"><a href="% link%">% text%</a></li> | + | <li class="active"><a href="%link%">%text%</a></li> |
END; | END; | ||
?> | ?> | ||
− | </ | + | </pre> |
+ | |||
+ | По этому шаблону будут выводиться дочерние элементы меню. | ||
+ | [[Категория:Верстка в TPL]] |
Текущая версия на 11:45, 27 апреля 2015
Для решения этой задачи придется использовать не совсем корректный способ. Не рекомендуется использовать его для меню с большой вложенностью.
1. В шаблоне дизайна пропишите макрос %content menu('sl3', %pid%)%, а в папку ~tpls/content/menu/ поместите шаблон sl.tpl со следующим кодом:
<?php $FORM = Array(); $FORMS['menu_block_level1'] = <<<END %lines% END; $FORMS['menu_line_level1'] = <<<END <li><a href="%link%">%text%</a></li> END; $FORMS['menu_line_level1_a'] = <<<END %sub_menu% END; $FORMS['menu_block_level2'] = <<<END <ul id="submenu">%lines%</ul> %content menu('sl2', 2, %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', 2, %pid%)% из блока ['menu_block_level2']. В нем, с помощью макроса %pid% мы подхватываем идентификатор текущей (то есть активной) страницы и, таким образом, указываем макросу родительский элемент, от которого следует выводить страницы.
2. Создайте шаблон ~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; ?>
По этому шаблону будут выводиться дочерние элементы меню.