Пункты меню из разделов инфоблока Битрикс

31805  |  52

В принципе это стандартная возможность системы управления битрикс, но почему-то часто спрашивают как это сделать. Возможно в документации данный вопрос освещен не достаточно понятно. Постараюсь рассказать по простому, со скринами, как же вывести разделы инфоблока в меню.

Добавляем разделы в инфоблок:

Предположим что нам нужно создать меню из подкатегорий новостей. У нас уже есть готовый инфоблок для новостей и он выведен на сайт. В общем новости работают. И наступил момент, что новостей стало достаточно много и пора их разбить на несколько категорий: "Спорт", "Финансы" и.т.д.

Для начала создаем эти разделы:

создание раздела в инфоблоке битрикс

Теперь задача создать пункты выпадающего меню, которое автоматически будет брать разделы в качестве своих пунктов. Для этого нужно создать необходимый тип меню в Управлении структурой. В моем случае я создаю тип меню "Меню подраздела"

создание меню

Создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php.

Создание ext меню

В моем примере я создаю блог на основе компонента новостей, потому каталог и соответствующий инфоблок называются blog

Настройка ext меню

В меню сайта необходимо подключить соответствующее меню в пункте "Тип меню для остальных уровней:" и установить чекбокс для "Подключать файлы с именами вида .тип_меню.menu_ext.php:"

ext меню

В наше ..._ext.php меню вносим вот такие данные:

<?
  if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
  global $APPLICATION;
  $aMenuLinksExt=$APPLICATION->IncludeComponent("bitrix:menu.sections", "", array(
  "IS_SEF" => "Y",
  "SEF_BASE_URL" => "/blog/",
  "SECTION_PAGE_URL" => "#SECTION_ID#/",
  "DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_ID#.html",
  "IBLOCK_TYPE" => "company",
  "IBLOCK_ID" => "5",
  "DEPTH_LEVEL" => "3",
  "CACHE_TYPE" => "A",
  "CACHE_TIME" => "36000000"
  ),
false
);
  $aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
?>

Где:

  • "SEF_BASE_URL" => "/blog/", - каталог инфоблока на сайте
  • "SECTION_PAGE_URL" => "#SECTION_ID#/", - подставляем ID раздела
  • "DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_ID#.html", - полный путь к элементу инфоблока
  • "IBLOCK_TYPE" => "company", - ID типа инфоблока из которого выводим
  • "IBLOCK_ID" => "5", ID инфоблока из которого выводим
  • "DEPTH_LEVEL" => "4", уровень вложенности, этой цифрой можно выводить подразделы разделов если иерархия многоуровневая

В настройках компонента инфоблока также прописываем аналогичный путь к элементам и разделам инфоблока

настройка ЧПУ битрикс

В итоге все вновь создаваемые разделы инфоблока будут автоматически попадать в выпадающее меню (в моем случае, вы можете проделать эти манипуляции для любого типа меню)

Надеюсь объяснил наглядно и понятно, если остались вопросы или есть чем дополнить данную записку, прошу писать в комментариях. Всем успехов.

Расскажи друзьям-то:
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей
Зарегистрироваться Войти Напомнить пароль
Или войти через социальную сеть:
Гость сайта
В документации не так понятно.
http://dev.1c-bitrix.ru/user_help/settings/settings/components_2/navigation/menu_­section.php
Практически ни как в ней.
Гость сайта
Цитата
Гость сайта пишет:
В документации не так понятно.
Цитата
http://dev.1c-bitrix.ru/user_help/settings/s
Цитата
Гость сайта пишет:
В документации не так понятно.
http://dev.1c-bitrix.ru/user_help/settings/settings/components_2/navigation/menu_­section.php
Практически ни как в ней.
ettings/components_2/navigation/menu_section.php
Практически ни как в ней.
В документации вообще кто то невменяемый описывает справку....
Михаил Базаров
Цитата

Цитата
Цитата
Цитата
Гость сайта пишет:
В документации не так понятно.
http://dev.1c-bitrix.ru/user_help/settings/settings/components_2/navigation/menu_­section.php
Практически ни как в ней.
ettings/components_2/navigation/menu_section.php
Практически ни как в ней.
В документации вообще кто то невменяемый описывает справку....
Вроде как Роберт Басыров руководит этим отделом. Книжка "1С-Битрикс: строим профессиональный сайт и интернет-магазин" у него вполне ничего- вменяемая. С документацией видимо не осилил.
Михаил
Здравствуйте. Как вывести многоуровневый список разделов с элементами? Тоесть построить дерево в точности как и инфоблоке. С названиями разделов и выпадающими элементами. Как например тут http://avangard.ru/rus/about/inforaskr/
Михаил Базаров
Цитата
Михаил пишет:
http://avangard.ru/rus/about/inforaskr/
Ни разу не стояла задача проделывать такое, по идее ничего сложного не должно быть. Попробуйте вот по этой инструкции http://webdevhelp.ru/bitriks-kak-sdelat-vypadayushhee-menyu-iz-nazvanij-elementov-infobloka/
Наталья
Вот после создания типа меню в управлении структурой - дальше идет непонятно. "И создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php." Между этими пунктами такое ощущение должно быть еще что-то.
Михаил Базаров
Цитата
Наталья пишет:
Вот после создания типа меню в управлении структурой - дальше идет непонятно. "И создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php." Между этими пунктами такое ощущение должно быть еще что-то.
Нет все верно. Можно немного по другому эту мысль выразить "Создаем меню и подключаем к нему меню типа ext". Еще понятнее- затрудняюсь написать :) .
Наталья
Здравствуйте!

Спасибо за полезный пост.
У меня аналогичный вопрос, на счет вывода в меню элементов инфоблока.
Пробовала делать по той ссылке, что вы дали ниже, но через тот скрипт не создаются верные ссылки на подробное описание элементов, т.е. параметр DETAIL_PAGE_URL отображается не верно. Помогите пожалуйста разобраться, в чем дело? Спасибо!!!!
Михаил Базаров
Цитата
Наталья пишет:
Здравствуйте!

Спасибо за полезный пост.
У меня аналогичный вопрос, на счет вывода в меню элементов инфоблока.
Пробовала делать по той ссылке, что вы дали ниже, но через тот скрипт не создаются верные ссылки на подробное описание элементов, т.е. параметр DETAIL_PAGE_URL отображается не верно. Помогите пожалуйста разобраться, в чем дело? Спасибо!!!!
Думаю вот так и дешевле и быстрее http://marketplace.1c-bitrix.ru/solutions/yenisite.menu/
Анна
Т е не нужно создавать папки(разделы) и там каждому пункту и подпункту руками вбивать путь?
Михаил Базаров
Цитата
Анна: Т е не нужно создавать папки(разделы) и там каждому пункту и подпункту руками вбивать путь?
Не понял вопроса. Пишите более развернуто
Гость сайта
Цитата
Михаил Базаров пишет:
Цитата
Не понял вопроса. Пишите более развернуто
Я сначала создала меню и пункты с категориями и подкатегорями каталога, прописала ссылки вручную, а затем создала инфоблок "каталог". Потом нашла этот ваш пост и поняла, что сделала дурную работу с меню. Сначала нужно было сделать инфоблок каталог, а потом из него меню.
Спасибо за урок.
Аня
Может подскажете в чем причина?
Вывела каталоги и подкаталоги в меню, но странно пути в пунктах формируются.
Выводит подкаталоги, как каталоги, т е:
мойсайт.ру/каталог/платье
мойсайт.ру/каталог/короткое
мойсайт.ру/каталог/длинное

При том, что должно выводить:
мойсайт.ру/каталог/платье
мойсайт.ру/каталог/платье/короткое
мойсайт.ру/каталог/платье/длинное
Подскажите, пожалуйста, в чем может быть дело?
Уровень вложенности меню указала 4, для меню пробовала и вертикальное левое и дерево использовать. Одинаково.
Михаил Базаров
Цитата
Аня пишет:
Может подскажете в чем причина?
Вывела каталоги и подкаталоги в меню, но странно пути в пунктах формируются.
Выводит подкаталоги, как каталоги, т е:
мойсайт.ру/каталог/платье
мойсайт.ру/каталог/короткое
мойсайт.ру/каталог/длинное

При том, что должно выводить:
мойсайт.ру/каталог/платье
мойсайт.ру/каталог/платье/короткое
мойсайт.ру/каталог/платье/длинное
Подскажите, пожалуйста, в чем может быть дело?
Уровень вложенности меню указала 4, для меню пробовала и вертикальное левое и дерево использовать. Одинаково.
Вместо: #SECTION_ID# используйте #SECTION_CODE_PATH# тогда путь будет полным
Аня
Большое спасибо, Михаил!
Гость сайта
Добрый день. Не подскажите почему в [TEXT] перестало передаваться название раздела?
[0] => Array
(
[TEXT] =>
[LINK] => /catalog/voda/
[SELECTED] =>
[PERMISSION] => X
[ADDITIONAL_LINKS] => Array
(
)

[ITEM_TYPE] => D
[ITEM_INDEX] => 0
[PARAMS] => Array
(
[FROM_IBLOCK] => 1
[IS_PARENT] => 1
[DEPTH_LEVEL] => 1
[CNT] => 381
)

[DEPTH_LEVEL] => 1
[IS_PARENT] => 1
)
Ильсур
Добрый день! Подскажите как вывести в меню только определенные разделы инфоблока?
Михаил Базаров
Цитата
Ильсур пишет:
Добрый день! Подскажите как вывести в меню только определенные разделы инфоблока?
Добрый, деактивировать не нужные разделы, или выполнить проверку: Если ID раздела такой-то-то display:none
Леонид
Добрый вечер Михаил!

У меня такая ситуация. Сделал меню типа аккордион из инфоблока. Меню работает верно, все открывается, закрывается и т.д.
Проблема такая. При нажатии на ссылку в меню, в #WORKAREA# выводится "bitrix:main.map". :cry:
Скрин http://s018.radikal.ru/i515/1406/c8/0fee91dbcfb7.png

Подскажите пожалуйста как сделать, чтоб при переходе в какой-либо раздел или товар открывалась страница с описанием раздела или товара.
Михаил Базаров
Цитата
Леонид пишет:

Проблема такая. При нажатии на ссылку в меню, в #WORKAREA# выводится " bitrix:main.map ".
...
Проверьте, чтобы настройки ЧПУ в меню соответствовали настройкам ЧПУ в компаненте с которым работает меню
Конкретно:

Код
"SECTION_PAGE_URL" => "#SECTION_ID#/",    // ПУТЬ ЧПУ К РАЗДЕЛУ
  "DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_ID#.html",  //ПУТЬ ЧПУ К ЭЛЕМЕНТАМ
 
Страницы: 1 2 3 След.

© 2011—2016 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.
Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой. Политика конфеденциальности
x
Как к Вам обращаться? *
Ваша электронная почта: *
Доп. материалы (логотип, тех. задание):
 
Обзор
Текст сообщения: