Многоуровневое меню, где каждый уровень - отдельный список

Материал из Umicms
Версия от 11:20, 1 сентября 2009; Sv (обсуждение | вклад) (Новая страница: «<hr> <h2>Как сделать многоуровневое меню, где каждый уровень - отдельный список?</h2> Для решени…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Как сделать многоуровневое меню, где каждый уровень - отдельный список?

Для решения этой задачи придется использовать не совсем корректный способ. Не рекомендуется использовать его для меню с большой вложенностью.

В шаблоне дизайна пропишите макрос %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
%content menu('sl2',% pid%)%
END;

$FORMS['menu_line_level2'] = <<<END
  • <a href="% link%">% text%</a>
  • END;
    
    $FORMS['menu_line_level2_a'] = <<<END
    
  • <a href="%link%">% text%</a>
  • END;
    
    ?>
    


    Обратите внимание на макрос % content menu('sl2',% pid%)% из блока ['menu_block_level2']. В нем, с помощью макроса % pid% мы подхватываем идентификатор текущей (то есть активной) страницы и, таким образом, указываем макросу родительский элемент, от которого следует выводить страницы. Шаблон tpls/content/menu/sl2.tpl должен иметь вид:

    <?php
    
    $FORM = Array();
    
    $FORMS['menu_block_level1'] = <<<END
    
    END;
    
    $FORMS['menu_line_level1'] = <<<END
    
  • <a href="% link%">% text%</a>
  • END;
    
    $FORMS['menu_line_level1_a'] = <<<END
    
  • <a href="% link%">% text%</a>
  • END;
    
    ?>