Нужно создать на сайте левое меню в виде дерева, с раскрывающимися пунктами вплоть до третьего уровня. Причем во вложенных пунктах ссылками могут являться не только "листы" дерева, но и узловые элементы. До этого делала только линейные простейшие меню. Поняла, что желательно делать меню, которое будет строиться на основании разделов и статей инфоблока. Прочитала http://dev.1c-bitrix.ru/api_help/main/general/menu.php и http://dev.1c-bitrix.ru/api_help/main/general/menu_5x.php, посмотрела подходящие темы на форуме. Понимаю, что разбираться буду дооооолго, если вообще разберусь без посторонней помощи. Пожалуйста, расскажите последовательно что конкретно нужно делать или ткните куда-то, где это уже обсуждалось, документация как-то уж очень лаконична в этом вопросе... P.S. Честное слово, я не блондинка, вразумительные объяснения понимаю. Просто я совсем новичок в этом вопросе.
Если вам нужно меню из разделов и элементов инфоблока, то такое меню надо программировать в файле под названием .left.menu_ext.php. В этом файле формируете в цикле для каждого раздела и элемента массив такого вида
Код
$aMenuLinksExt[] = array(
$ar_fields["NAME"], // Название
"/index/32/", //здесь ссылка или заглушка пустое поле ""
Array(),
Array( // здесь параметры
"FROM_IBLOCK" => 1,
"IS_PARENT" => 0,
"LINK_STUB" => 0, // этот параметр я ставлю чтобы показать в шаблоне заглушка это или ссылка.
"DEPTH_LEVEL" => $ar_fields["DEPTH_LEVEL"],
"SELECTED" => $select
),
);
После формирования полностью массива пунктов в конце файла ставите
И далее в параметрах левого меню ставите галочку подключать файлы с окончанием _ext. На основании этого массива выводите шаблон. По моему в битриксе даже готовый есть. Что то типа tree называется. Не помню точно.
Где то это вроде в документации описывается. наберите в поиске menu_ext
Роберт Басыров, нет, сюда еще не заглядывала. Спасибо за ссылку, пошла читать.
Артур Неудахин, я попыталась сделать нечто подобное, у меня подгрузился только один самый верхний уровень, правда, я в "DEPTH_LEVEL" просто поставила 3, это, конечно, фигня, т.к. элементы-то должны быть каждый на своем уровне ...
Оксана Щербакова пишет: Артур Неудахин , я попыталась сделать нечто подобное, у меня подгрузился только один самый верхний уровень, правда, я в "DEPTH_LEVEL" просто поставила 3, это, конечно, фигня, т.к. элементы-то должны быть каждый на своем уровне ...
Если вы делаете выборку методом GetList, то в ней у элементов и разделов содержится параметр DEPTH_LEVEL. Его и нужно подставлять.
Роберт Басыров, сделала по инструкции для построения меню из инфоблоков с помощью компонента "bitrix:menu.sections". У меня получилось, что меню 2-х уровневое, по числу вложенных разделов, и строка для URL выглядит так:
Код
"SECTION_URL" => "/catalog/?SECTION_ID=#ID#"
А можно сделать так, чтобы в меню попали еще и элементы инфоблока? Хочется, чтобы формировалась строка вида
Код
"/catalog/?SECTION_ID=13"
для папок, и
Код
"/catalog/?SECTION_ID=13&ELEMENT_ID=87"
для элементов инфоблока? И еще, в моем случае не важно какой я ставлю "DEPTH_LEVEL", 2 или 3 показывается одинаково, главное, чтобы больше 1. Наверное, в таком случае нужно действовать, как описывал Артур Неудахин, без компонента "bitrix:menu.sections", ведь, судя по названию, он умеет подтягивать только секции?
Разве только секции? В руководстве явно на скриншотах показаны и элементы. Они должны подцепляться автоматически. То что предлагает Артур - это фактически то же самое что делает компонент. Если не показываются элементы, то проверяйте свои действия, что-то сделано не так.
Роберт Басыров, да, листами (как бы элементами) выглядят на самом деле более вложенные разделы. И в руководстве указан код только для "SECTION_URL" => "/catalog/phone/section.php?", а для ELEMENT_URL там запись не предусмотрена. Вот еще нашла такую же тему Компонент menu.sections - как сделать вывод элементов?на форуме. Но ответ ДядяДимы с подключением bitrix:catalog.section не очень поняла... UPD. Точно, я распечатала на страничке содержимое "$APPLICATION->IncludeComponent(bitrix:menu.sections...", там только секции. Но зато теперь, благодаря Вашим ссылкам я поняла как формируются расширения меню. Буду дополнять массив элементами.