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

Пункты меню из разделов инфоблока Битрикс
Данный форум не является официальным и не преследует ни каких целей. Владелец сайта оставляет за собой право удалять, перемещать и закрывать темы и посты по своему усмотрению. Рекламные темы и сообщения только с согласия администратора.

Вход Регистрация
Быстрый вход / регистрация, через социальную сеть
Регистрируясь на форуме, Вы безоговорочно принимаете условия политики конфеденциальности и обработки персональных данных
RSS
Пункты меню из разделов инфоблока Битрикс
 
Пункты меню из разделов инфоблока Битрикс

В принципе это стандартная возможность системы управления битрикс, но почему-то часто спрашивают как это сделать. Возможно в документации данный вопрос освещен не достаточно понятно. Постараюсь рассказать по простому, со скринами.
 
В документации не так понятно.
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",  //ПУТЬ ЧПУ К ЭЛЕМЕНТАМ
 
 
Сразу на это внимание не обратил. Все заработало) Спасибо огромное!  :)
 
Добрый день. Не подскажите как добавить к пунктам меню количество элементов в данном разделе
 
Цитата
Гость сайта пишет:
Добрый день. Не подскажите как добавить к пунктам меню количество элементов в данном разделе
В данном случае лучше использовать Список разделов. Просто сверстать его под меню- вывод кол-ва там уже  есть
 
Цитата
Михаил Базаров пишет:
Цитата
Ильсур пишет:
Добрый день! Подскажите как вывести в меню только определенные разделы инфоблока?
Добрый, деактивировать не нужные разделы, или выполнить проверку: Если ID раздела такой-то-то display:none
Расскажите пожалуйста подробней.
 
Цитата
Денис пишет:
Цитата
Добрый, деактивировать не нужные разделы, или выполнить проверку: Если ID раздела такой-то-то display:none
Расскажите пожалуйста подробней.
Чуть позже, отдельной запиской
 
Здравствуйте. Подскажите, если я не так понял.
"И создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php. "
Я захожу в контент, файлы и папки, "blog", кликаю добавить - добавить меню, тип меню выбираю podrazdel. Далее сохранить.
И  в папке blog должна появиться папка "Меню типа "Podrazdel"". У меня ничего не появляется...
 
Цитата
Здравствуйте. Подскажите, если я не так понял.
"И создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php. "
Я захожу в контент, файлы и папки, "blog", кликаю добавить - добавить меню, тип меню выбираю podrazdel. Далее сохранить.
И в папке blog должна появиться папка "Меню типа "Podrazdel"". У меня ничего не появляется...
Я разобрался надо было стереть Шаблон по умолчанию. Теперь вроде все получилось, вот только все подразделы раздела блог не вошли в него а появились рядом.
 
Добрый вечер!

Есть один вопрос, посмотрел Ваши уроки, все доступно рассказано, но кроме одного момента.
У меня на главной странице, над осноным контентом, есть надпись раздел не найден, не пойму как убрать данную ошибку, или прикрепить раздел к главной странице index.php

Был бы признателен за грамотно разложенный ответ.
 
Цитата
Гость сайта пишет:
Добрый вечер!

Есть один вопрос, посмотрел Ваши уроки, все доступно рассказано, но кроме одного момента.
У меня на главной странице, над осноным контентом, есть надпись раздел не найден, не пойму как убрать данную ошибку, или прикрепить раздел к главной странице index.php

Был бы признателен за грамотно разложенный ответ.
Посмотрите. Может быть у вас не разрешен доступ на чтнение к этому инфоблоку. Заходите в настройки инфоблока и на вкладке ДОСТУП,  для всех = Чтение
 
Михаил, здравствуйте. Вы молодец, все доступно, понятно и в одном месте. Вопрос следующий: в меню д.б. два выпадающих пункта, один из каталога (как указано в данной статье), а второй из готовых страниц которые должны, так сказать "выпасть" при наведении на ссылку на главную страницу в меню. Как это проще реализовать, ведь в настройках  модуля у меня указано меню второго уровня каталога.
 
Цитата
Николай пишет:
Михаил, здравствуйте. Вы молодец, все доступно, понятно и в одном месте. Вопрос следующий: в меню д.б. два выпадающих пункта, один из каталога (как указано в данной статье), а второй из готовых страниц которые должны, так сказать "выпасть" при наведении на ссылку на главную страницу в меню. Как это проще реализовать, ведь в настройках модуля у меня указано меню второго уровня каталога.
Михаил, не беспокойтесь разобрался сам. Еще раз спасибо.
 
Спасибо Михаил вам за уроки я по ним изучаю битрекс, у меня вопрос возник я создал каталог продукции в нем разделы товаров а как мне сделать подразделы в этих разделах чтбы они выводились списком то есть когда нажимаешь в меню на раздел выводится подраздел списком а потом уже выводилась карточка товара  изложил как мог
 
Михаил, спасибо за курс.
Возник вопрос, надо сделать чтобы 1 раздел с подразделами, попал в выпадающее меню при выгрузке из 1С
Как такое можно сделать?
 
Добрый день
Как можно сформировать меню из каталога Бренд и как реализовать, так что
У 1 бренда идет разветление на 3 подбренда
 
Цитата
Анатолий пишет:
Спасибо Михаил вам за уроки я по ним изучаю битрекс, у меня вопрос возник я создал каталог продукции в нем разделы товаров а как мне сделать подразделы в этих разделах чтбы они выводились списком то есть когда нажимаешь в меню на раздел выводится подраздел списком а потом уже выводилась карточка товара изложил как мог
просто использовать catalog.section.list в шаблоне section.php
 
Цитата
Роман пишет:
Михаил, спасибо за курс.
Возник вопрос, надо сделать чтобы 1 раздел с подразделами, попал в выпадающее меню при выгрузке из 1С
Как такое можно сделать?
Прямо по описанному мною способу. Выгружаете из 1С в инфоблок на сайте и все, дальше прямо по описанию
 
Цитата
Гость сайта пишет:
Добрый день
Как можно сформировать меню из каталога Бренд и как реализовать, так что
У 1 бренда идет разветление на 3 подбренда
Создвть раздел в инфоблоке, назвать его "Бренд" а в нем подразделы "Подбренд1" "Подбренд2" итд
В шаблоне меню выставить глубину вложенности


Код
<? 
  ...
  "DEPTH_LEVEL" => "3",  /// ГЛУБИНА ВЛОЖЕННОСТИ, максимум 5 (хотя не проверял можно ли еще больше)
  ...
false 
); 
  $aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks); 
?>
 
 
Доброе время суток! Михаил, спасибо за уроки, ну очень помогли!!!!
Вот есть такая задача, как сделать чтобы  leftmenu формировалось из названий инфоблоков (их множество ) а leftmenuchild формировалось из разделов этих инфоблоков.
С последним пунктом я осилил по описанному методу(leftmenuchild )
Просто все находится в одном каталоге. Это делается по причине что в каждом инфоблоке необходим фильтр с определенными свойствами. ( Пример: свойство "длина кабеля ", для инфобл. "Переходники", мне не нужно отражать в фильтре, для инфоблока "платы телевизоров")
 
Еще раз здрасте! Разобрался по последнему вопросу. Спасибо!
теперь все работает и создается как нужно. Затупка была в том что я создавал страницы для инфоблоков, а нужно было делать разделы.  Как оказалось это ключевое условие.
В каталоге разместил <тип меню.menu.php> , <тип подменю.menu.php> и <тип подменю.menu_ext.php> теперь при создании контентной части она автоматом попадает в меню а так же автоматом создаются все подразделы разделов инфоблоков.
<тип меню.menu.php> , <тип подменю.menu.php> и <тип подменю.menu_ext.php>
необходимо размещать в корне каталога тогда все последующее добавленое будет включатся в меню в противном случае ваше меню будет работать только до того места в корень которого вы его разместите.
Все остальные разделы и подразделы, которые находятся выше(старше,  главнее, приарететнее и т.д.) не будут добовлятся в меню.
Пример:
Структура сайта:
   -Каталог
          |
          -Инфоблок  товаров 1
                  |
                  -Раздел 1
                  -Раздел 2
        -Инфоблок товаров 2
                 |
                 -Раздел 1
                 -Раздел 2
Если разместить <тип меню.menu.php> , <тип подменю.menu.php> и <тип подменю.menu_ext.php> в инфоблок товаров 2, то инфоблок товаров 1 и его разделы не будут отражатся в вашем меню.
Михаил еще раз спасибо за уроки - они очень помогают!
Надеюсь мое обьяснение будут понятно хотя бы таким как я!
Подробный алгоритм действий смотрите в  описании Михаила!
 
Добрый день, Михаил.
А как быть, если структура разделов у меня многоуровневая, а мне нужно вывести подменю только начиная с например 3 уровня?
 
Цитата
Aleksandr пишет:
Добрый день, Михаил.
А как быть, если структура разделов у меня многоуровневая, а мне нужно вывести подменю только начиная с например 3 уровня?
Попробуйте через условие
Код
DEPTH_LEVEL > 2
 
 
Добрый день, подскажите пожалуйста, как сделать из разделов инфоблока пункты меню и вывести их на отдельной странице, а не на втором уровне основного меню, и чтобы по клику на каждый раздел, открывалась страница с элементами из данного раздела?
 
Цитата
Николай написал:
Добрый день, подскажите пожалуйста, как сделать из разделов инфоблока пункты меню и вывести их на отдельной странице, а не на втором уровне основного меню, и чтобы по клику на каждый раздел, открывалась страница с элементами из данного раздела?
Просто делаете ext меню не для второго уровня вложености (третьего, четвертого итд), а для первого- и выводите на странице
 
Цитата
Михаил Базаров пишет:
Цитата
Aleksandr пишет:
Добрый день, Михаил.
А как быть, если структура разделов у меня многоуровневая, а мне нужно вывести подменю только начиная с например 3 уровня?
Попробуйте через условие
Код
 DEPTH_LEVEL > 2
  
Михаил, добрый день. Такой же вопрос, но не понял куда вставить данный код? Если в .top.menu_ext.php всемто "DEPTH_LEVEL" => "4", написать "DEPTH_LEVEL"> "4", то меню вобще перестает раскрываться.
 
Цитата
Юрий написал:
Цитата
Михаил Базаров  пишет:
Цитата
Aleksandr пишет:
Добрый день, Михаил.
А как быть, если структура разделов у меня многоуровневая, а мне нужно вывести подменю только начиная с например 3 уровня?
Попробуйте через условие
Код
  DEPTH_LEVEL > 2
   
Михаил, добрый день. Такой же вопрос, но не понял куда вставить данный код? Если в .top.menu_ext.php всемто "DEPTH_LEVEL" => "4", написать "DEPTH_LEVEL"> "4", то меню вобще перестает раскрываться.
Нет не сюда, воспользуйтесь компонентом section.list - им я думаю, проще сделать то что хотите
 
Добрый день, Михаил.
Спасибо вам огромное за курс!
Я сделала меню, как вы описали. Но в итоге у меня выходит ошибка:
Fatal error: Call to a member function SetTitle() on null in/home/bitrix/www/katalog/.leftchild.menu_ext.phpon line 3

Не подскажете, что случилось?
Заранее спасибо.
 
Цитата
Катя написал:
Добрый день, Михаил.
Спасибо вам огромное за курс!
Я сделала меню, как вы описали. Но в итоге у меня выходит ошибка:
Fatal error : Call to a member function SetTitle() on null in /home/bitrix/www/katalog/.leftchild.menu_ext.php on line  3

Не подскажете, что случилось?
Заранее спасибо.
Посмотрите что у вас там в третьей строчке, видимо как-то не удачно скопировали код
 
Цитата
Михаил Базаров пишет:
Цитата
Катя написал:
Добрый день, Михаил.
Спасибо вам огромное за курс!
Я сделала меню, как вы описали. Но в итоге у меня выходит ошибка:
Fatal error : Call to a member function SetTitle() on null in /home/bitrix/www/katalog/.leftchild.menu_ext.php on line 3

Не подскажете, что случилось?
Заранее спасибо.
Посмотрите что у вас там в третьей строчке, видимо как-то не удачно скопировали
Я все перепроверила уже раз 100 :)  Сначала он выдавал мне ошибку в первой строке, после чего я удалила файл .leftchild.menu_ext.php совсем и создала заново. И вот  с новым файлом дает ошибку в 3 строке. Но там точно все правильно, все как у вас...  
 
Сделала меню по вашему способу, только делала пункты из разделов каталога. Все получилось. НО. Не могли бы вы рассказать, как сделать так, чтобы из пунктов разделов все-таки выпадало меню - список товаров раздела? Пожалуйста!
 
Добрый день!
Михаил, а есть ли возможность (и как ?) передавать картинки разделов инфоблока.в шаблон вывода меню?
Интересует именно этот случай,.... когда формируем _ext меню .
 
Цитата
Андрей Шведюк написал:
Добрый день!
Михаил, а есть ли возможность (и как ?) передавать картинки разделов инфоблока.в шаблон вывода меню?
Интересует именно этот случай,.... когда формируем _ext меню .
Это в типовом магазине реализовано, подсмотрите там, или вообще используйте шаблон меню из типового магазина
 
Вопрос по смежной теме: делаю меню из пунктов инфоблока (не разделов!). Использую файл *_ext.php со следующим кодом:

Код
<?
if(!defined("B_PROLOG_INCLUDED" || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
if(CModule::IncludeModule("iblock") {
    $IBLOCK_ID = 3; // указываем инфоблок с элементами
    $arOrder = Array("SORT"=>"DESC";
    $arSelect = Array("ID", "NAME", "IBLOCK_ID", "DETAIL_PAGE_URL";
    $arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y";
    $res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
    while($ob = $res->GetNextElement()) // наполняем массив меню пунктами меню
    {
     $arFields = $ob->GetFields();
     $aMenuLinksExt[] = Array(
      $arFields['NAME'],
      $arFields['DETAIL_PAGE_URL'],
      Array(),
      Array(),
     );
    }   
}
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks); // меню сформировано
?>
Пункты меню выводятся, но есть одна сложность: когда я создаю тип инфоблока, то по дефолту у него в описании (первая закладка) прописывается вот такой адрес URL страницы детального просмотра:

Код
#SITE_DIR#/simple/detail.php?ID=#ELEMENT_ID#
Так вот, пункты меню, сделанного из пунктов этого инфоблока, начинают вести внутрь самого инфоблока, только если этот адрес в настройках инфоблока поправить на:

Код
/services/#SECTION_ID#/#ELEMENT_CODE#/
где "services" - это название раздела, в котором выведен используемый инфоблок (выведен через компонент Новости).

Вроде бы все работает - пункты меню ведут в пункты инфоблока, компонент Новости в соответствующем разделе инфоблок обрабатывает нормально. Но мне как-то не нравится, что дефолтный адрес был изменен - я никогда не видела подобной практики и боюсь, как бы это не породило каких-то скрытых проблем в будущем. Не могли бы вы прокомментировать это явление и, если можно, посоветовать, как делать меню из пунктов инфоблока экологично и грамотно.
 
Цитата
A A написал:
Вопрос по смежной теме: делаю меню из  пунктов  инфоблока (не разделов!). Использую файл *_ext.php со следующим кодом:
Код
...см выше...

Не могли бы вы прокомментировать это явление и, если можно, посоветовать, как делать меню из пунктов инфоблока экологично и грамотно.
Все правильно сделали, этот адрес и нужно было сменить на правильный (на совпадающий с публичной частью), по нему потом еще и карта сайта строится и результаты поиска. В общем, все правильно сделали
 
Здравствуйте, Михаил! я, возможно, был невнимателен, но не понял: есть ли способ сделать первым уровнем меню не корень инфоблока, а один из его разделов?
 
Здравствуйте. У меня два вопроса именно по меню, созданному из разделов инфоблока:
1. Как вывести изображение раздела в меню?
2. Как вывести детальную картинку раздела в меню?
 
Цитата
Константин Нечаев написал:
Здравствуйте. У меня два вопроса именно по меню, созданному из разделов инфоблока:
1. Как вывести изображение раздела в меню?
2. Как вывести детальную картинку раздела в меню?
Посмотрите как это реализовано в типовом меню, которое идет с битрикс- там это есть
 
Цитата
Михаил Базаров пишет:
Цитата
Константин Нечаев написал:
Здравствуйте. У меня два вопроса именно по меню, созданному из разделов инфоблока:
1. Как вывести изображение раздела в меню?
2. Как вывести детальную картинку раздела в меню?
Посмотрите как это реализовано в типовом меню, которое идет с битрикс- там это есть
Посмотрел. Простой копи-паст и настройка со своими данными шаблона меню и section.menu ни к чему не привели. Хотя ext-меню настроено правильно и картинки у разделов инфоблока есть. Не понимаю, в чем проблема. Михаил, все-таки было бы круто, если бы вы записали видеоурок, как создать с нуля меню с картинками из разделов инфоблока. К тому же в интернете встречаются только текстовые решения этой задачи, не всегда понятные. Спасибо.
 
Здравствуйте, Михаил!
Не совсем понятен механизм "вызова" файлом самого меню из файла "название_меню _ext.php" подпунктов меню из разделов инфоблока. Формально я понимаю как строится меню в php, только Как я правильно понимаю, в файле самого меню должен быть php-код? Просто в этой статье эта тема у вас не раскрыта... Может подскажете где эту информацию взять? Или подскажете как сделать.
 
Цитата
Станислав Мишин написал:
Здравствуйте, Михаил!
Не совсем понятен механизм "вызова" файлом самого меню из файла "название_меню _ext.php" подпунктов меню из разделов инфоблока. Формально я понимаю как строится меню в php, только Как я правильно понимаю, в файле самого меню должен быть php-код? Просто в этой статье эта тема у вас не раскрыта... Может подскажете где эту информацию взять? Или подскажете как сделать.

Вот тут в видео, прямо по этой заметке наглядно http://camouf.ru/video/info_site/iblocks_inmenu.html
 
Михаил спасибо за ваши уроки, все понятно и доступно. Подскажите пожалуйста (а лучше приведите пример скрипта) как сделать  так, что бы в одном пункте меню выводилось несколько инфоблоков. Например: 4 инфоблока отображаются в одном пункте "Услуги". из них в подменю выводятся их разделы. Возможно ли это вообще в Битрикс. Заранее спасибо.
 
Можно просто сделать 4 ext меню.
Либо способ сложнее: собрать 4 типа в один массив. Примерно так (за работоспособность не уверен, надо пробовать)
Код
<? 
  if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); 
  global $APPLICATION; 
  $aMenuLinksExt=$APPLICATION->IncludeComponent("bitrix:men u.sections", "", ar ray( 
  ......РАЗ ИНФОБЛОК...... 
  ),

  $aMenuLinksExtSecond=$APPLICATION->IncludeComponent("bitrix:menu.sections", "", array( 
  ......ДВА ИНФОБЛОК...... 
  ),
 
false 
); 
//СОБИРАЕМ ВСЕ В МАССИВ
  $aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinksExtSecond, $aMenuLinks);
?>
В примере для двух инфоблоков. Просто дабавьте нужное количество
 
день добрый.
а возможно сделать меню из свойств инфоблока ? или конкретно из свойств раздела инфоблока ?  
 
Здравствуйте, Михаил! Благодарен вам за то, что вы делаете!

Подскажите, пожалуйста, как можно в раздел меню, в котором есть 4 подпункта (разделы инфоблока), добавить пятый пункт, но чтобы он не являлся разделом этого инфоблока, а был просто ссылкой с url-ом, который я пропишу? Спасибо!
 
Цитата
Последовательность Возвратная написал:
Здравствуйте, Михаил! Благодарен вам за то, что вы делаете!

Подскажите, пожалуйста, как можно в раздел меню, в котором есть 4 подпункта (разделы инфоблока), добавить пятый пункт, но чтобы он не являлся разделом этого инфоблока, а был просто ссылкой с url-ом, который я пропишу? Спасибо!
Просто добавить этот пункт в тип меню. Файл ext просто собирает массив $ссылкиМеню + $разделыИнфоблока - там в конце файла _ext прям видна эта "сборка"

Вот тут пример в живую https://camouf.ru/video/new_store/menus.html где-то в середине
 
Цитата
Михаил Базаров пишет:
Цитата
Последовательность Возвратная написал:
Здравствуйте, Михаил! Благодарен вам за то, что вы делаете!

Подскажите, пожалуйста, как можно в раздел меню, в котором есть 4 подпункта (разделы инфоблока), добавить пятый пункт, но чтобы он не являлся разделом этого инфоблока, а был просто ссылкой с url-ом, который я пропишу? Спасибо!
Просто добавить этот пункт в тип меню. Файл ext просто собирает массив $ссылкиМеню + $разделыИнфоблока - там в конце файла _ext прям видна эта "сборка"

Вот тут пример в живую https://camouf.ru/video/new_store/menus.html где-то в середине


В моем варианте нет чекбокса "Создать пункт меню"...
https://yadi.sk/i/a6g5IJ273SFZ4x (если скрин не прикрепится)
 
Цитата
Последовательность Возвратная написал:
 
В моем варианте нет чекбокса "Создать пункт меню"...
https://yadi.sk/i/a6g5IJ273SFZ4x  (если скрин не прикрепится)

Просто в ручную добавте
Код
<?
$aMenuLinks = Array(
   Array(
      "Новый раздел", 
      "/nww/", 
      Array(), 
      Array(), 
      "" 
   )
);
?>
 
Вот мой файл ext из нужного каталога, он немного отличается, поэтому я туплю, простите. Внизу две строчки - это я понимаю сборка ссылок, как мне туда добавить этот код, чтоб получился новый независимый подпункт меню?
Код
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if(!CModule::IncludeModule("iblock")) return;

global $APPLICATION;

$iBlock = 22;
$arOrder = Array("SORT" => "ASC");
$arFilter = Array('IBLOCK_ID' => $iBlock);
$bIncCnt = false;
$Select = Array('NAME', 'SECTION_PAGE_URL', 'ID');
$NavStartParams = false;

$arRes = CIBlockSection::GetList($arOrder, $arFilter, $bIncCnt, $Select, $NavStartParams);

$arr = array();

while ($value = $arRes->GetNext()) {
   $arr[] = array($value['NAME'], $value['SECTION_PAGE_URL'],
            '3' => array('DEPTH_LEVEL' => 2)
         );
   
   $arOrder2 = Array("SORT"=>"ASC");
   $arFilter2 = Array('IBLOCK_ID' => $iBlock, 'SECTION_ID' => $value['ID']);
   $arGroupBy2 = false;
   $arNavStartParams2 = false;
   $arSelectFields2 = Array('NAME', 'DETAIL_PAGE_URL', 'DETAIL_PICTURE');

   $arElements = CIBlockElement::GetList($arOrder2, $arFilter2, $arGroupBy2, $arNavStartParams2, $arSelectFields2);
   $arr2 = array();

   while ($value2 = $arElements->GetNext()) {
      
      // $rsFile = CFile::GetPath($value2['DETAIL_PICTURE']);
      // $arFile = $rsFile->Fetch();
      $file = CFile::ResizeImageGet($value2['DETAIL_PICTURE'], array('width'=>200, 'height'=>144), BX_RESIZE_IMAGE_PROPORTIONAL, false); 


      $arr2[] = array($value2['NAME'], $value2['DETAIL_PAGE_URL'],
            '3' => array('DEPTH_LEVEL' => 3, 'DETAIL_PICTURE' => $file['src'])
         );
   }
   $aMenuLinks = array_merge($aMenuLinks, $arr);
   $aMenuLinks = array_merge($aMenuLinks, $arr2);
   unset($arr, $arr2);
}

?>
 
Добрый день! Михаил, благодарю вас за ваш труд и помощь новичкам!
Подскажите как осуществить такую задачу:

Меню из разделов и подразделов инфоблока.
Разделы должны быть на главной, при нажатии на раздел переходим на другую страницу, где:
- только название раздела, по которому перешли и только его подразделы.

Подразделы больше никуда не ведут у них ссылки-якоря.

Есть ли в ваших уроках пример меню такого вида? Заранее благодарю.  
 
Цитата
Lu Sh написал:
Добрый день! Михаил, благодарю вас за ваш труд и помощь новичкам!
Подскажите как осуществить такую задачу:

Меню из разделов и подразделов инфоблока.
Разделы должны быть на главной, при нажатии на раздел переходим на другую страницу, где:
- только название раздела, по которому перешли и только его подразделы.

Подразделы больше никуда не ведут у них ссылки-якоря.

Есть ли в ваших уроках пример меню такого вида? Заранее благодарю.  
Это можно сделать штатными средствами, просто используйте комплексный компонент "Каталог", он так и работает: выводить подразделы текущего раздела (в котором пользователь)
 
Михаил, возможно повторюсь...
Нужно скрыть из меню некоторые разделы (например с seo статьями). То есть раздел активный, но его не должно быть в меню.
Как лучше реализовать? Пользовательское поле делать: отражать/не отражать в меню?  
 
Цитата
dem написал:
Михаил, возможно повторюсь...
Нужно скрыть из меню некоторые разделы (например с seo статьями). То есть раздел активный, но его не должно быть в меню.
Как лучше реализовать? Пользовательское поле делать: отражать/не отражать в меню?  
Да нет, можно просто не добавлять в меню. Физически пусть будет раздел, но меню это просто компонент который берет пункты из файла ТИП_МЕНЮ.menu.php - в нем удалите да и все
 
Цитата
Михаил Базаров пишет:
Цитата
dem написал:
Михаил, возможно повторюсь...
Нужно скрыть из меню некоторые разделы (например с seo статьями). То есть раздел активный, но его не должно быть в меню.
Как лучше реализовать? Пользовательское поле делать: отражать/не отражать в меню?
Да нет, можно просто не добавлять в меню. Физически пусть будет раздел, но меню это просто компонент который берет пункты из файла ТИП_МЕНЮ.menu.php - в нем удалите да и все
Не совсем понял как можно удалить. Разделы же подгружаются автоматически из массива данных. В файле ТИП_МЕНЮ.menu.php нечего удалять.
 
Цитата
dem написал:
Цитата
Михаил Базаров  пишет:
Цитата
dem написал:
Михаил, возможно повторюсь...
Нужно скрыть из меню некоторые разделы (например с seo статьями). То есть раздел активный, но его не должно быть в меню.
Как лучше реализовать? Пользовательское поле делать: отражать/не отражать в меню?
Да нет, можно просто не добавлять в меню. Физически пусть будет раздел, но меню это просто компонент который берет пункты из файла ТИП_МЕНЮ.menu.php - в нем удалите да и все
Не совсем понял как можно удалить. Разделы же подгружаются автоматически из массива данных. В файле ТИП_МЕНЮ.menu.php нечего удалять.
А пардон) Не учел что тема про меню из разделов. Такие разделы, если их нет возможности вынести в отдельный инфлоблок, можно попробовать скрыть на уровне шаблона. Например, проверяя ссылку.

Что-то вроде (пишу быстро, там додумаете)
Код
<?if ($arResult['LINK'] !== '/путь/ссылки/'){?> Пункт меню выводится <?}?>
 
Цитата
Михаил Базаров пишет:
Такие разделы, если их нет возможности вынести в отдельный инфлоблок, можно попробовать скрыть на уровне шаблона. Например, проверяя ссылку.
В настоящее время у меня выведены SEO страницы в отдельный  инфоблок, но это жутко раздражает. Тем более, что если делать в рамках одного инфоблока, проще вывести таблицу с элементами. В задаче SEO ссылка должна быть внутри главного подраздела (какого либо вида товара). Поэтому пока не представляю как можно отсортировать по ссылке. Опять же надо еще убрать ссылки с компонента Каталог. Попробую все таки отфильтровать через пользователькое поле к разделу "Скрыть в меню". Есть галка - скрываем, нет галочки - показываем.
 
здраствуйте а как выделить пункт на странице которой находишься
 
Цитата
Салман Курбанов пишет:
здраствуйте а как выделить пункт на странице которой находишься
для левого меню каталога товаров
 
Цитата
Салман Курбанов написал:
здраствуйте а как выделить пункт на странице которой находишься
Просто добавить какой-нибудь класс к активному пункту и стилизовать через css

Посмотрите как это сделано в типовом меню и по аналогии
 
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
   global $APPLICATION;

   if(CModule::IncludeModule("iblock"))
   {

   $IBLOCK_ID = 5; // указываем из какого инфоблока берем элементы

   $arOrder = Array("NAME"=>"ASC"); // сортируем по свойству SORT по возрастанию
   $arSelect = Array("ID", "NAME", "IBLOCK_ID","DETAIL_PAGE_URL", 'PREVIEW_PICTURE', 'DETAIL_PICTURE');
   $arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y", "PROPERTY_razdel"=> $_REQUEST["SECTION_ID"]);
   $res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);

   while($ob = $res->GetNextElement())
   {
   $arFields = $ob->GetFields(); // берем поля
   //echo $arFields['NAME']." - arFields['NAME']<br>";
   // echo '<pre>';
   //print_r($arFields);     
   //echo '</pre>'; 

   // начинаем наполнять массив aMenuLinksExt нужными данными
   $aMenuLinksExt[] = Array(
   $arFields['NAME'],
   $arFields['DETAIL_PAGE_URL'],
   $arFields['PREVIEW_PICTURE'],
   $arFields ['DETAIL_PICTURE'],   
   Array(),
   Array(),
   ""
   );

   } // while($ob = $res->GetNextElement())

   }//  if(CModule::IncludeModule("iblock"))

   // echo "<br>Массив aMenuLinksExt - дополнительный";
   //echo '<pre>';
   //print_r($aMenuLinksExt);
   //echo '</pre>'; 

   $aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
      print_r($aMenuLinksExt);
 ?>
такой код у меня в .лефт.меню.пхп передает элементы инфоблока в $aMenuLinksExt добавил от себя
Код
   $arFields['PREVIEW_PICTURE'], 
$arFields ['DETAIL_PICTURE'],
в масивее $aMenuLinksExt картинки присутствуют но в шаблоне меню в масиве $arResult нету их помогите пожалуйста. куда передаются данные из $aMenuLinksExt
 
Доброго времени суток, Михаил.
У меня многосайтовая  установка Битрикс, при добавлении очередного сайта произошла следующая ситуация, я авторизовался на сайте №1 и установил шаблон для сайта №2. В связи  с чем у меня на всех сайтах слетели частично адреса страниц.  Перестали работать на всех сайтах "Левое меню."  
ЧПУ отключил.
В  пути к элементу инфоблока стало добавляются значения "#SITE_DIR#catalog"  . Вот эта ссылка не работает , при входе через меню  http://feokazanok.ru/#SITE_DIR#catalogavto_i_moto

вот настройки в файле .left.menu_ext.php

                    "IS_SEF" => "N",
        "SEF_BASE_URL" => "/catalog/",
        "SECTION_PAGE_URL" => "#SECTION_ID#/",
       "DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_ID#.html",
        "IBLOCK_TYPE" => "/catalog/",

Если захожу  на этой странице через комплексный компонент "bitrix.catalog" , то страница открывается http://feokazanok.ru/?SECTION_ID=30692


Заранее благодарен!
 
Цитата
Виталий Близнецов написал:
Доброго времени суток, Михаил.
У меня многосайтовая  установка Битрикс, при добавлении очередного сайта произошла следующая ситуация, я авторизовался на сайте №1 и установил шаблон для сайта №2. В связи  с чем у меня на всех сайтах слетели частично адреса страниц.  Перестали работать на всех сайтах "Левое меню."  
ЧПУ отключил.
В  пути к элементу инфоблока стало добавляются значения "#SITE_DIR#catalog"  . Вот эта ссылка не работает , при входе через меню   http://feokazanok.ru/#SITE_DIR#catalogavto_i_moto

вот настройки в файле .left.menu_ext.php

                    "IS_SEF" => "N",
        "SEF_BASE_URL" => "/catalog/",
        "SECTION_PAGE_URL" => "#SECTION_ID#/",
       "DETAIL_PAGE_URL" => "#SECTION_ID#/#ELEMENT_ID#.html",
        "IBLOCK_TYPE" => "/catalog/",

Если захожу  на этой странице через комплексный компонент "bitrix.catalog" , то страница открывается  http://feokazanok.ru/?SECTION_ID=30692


Заранее благодарен!
У Вас там сайт вообще не открывается.
Но попробуйте (предварительно сохранившись) - пересоздать правила обработки адресов, в настройках главного модуля.
 
Пересоздал, но проблема осталась, через меню ссылки не работают.  
На всех сайтах http://polmira82.ru/#SITE_DIR#catalogdariano
https://www.leto-navsegda.ru/catalog/alushta/#SITE_DIR#catalogalupka
https://feokazanok.ru/?back_url_admin=%2Fbitrix%2Fadmin%2Furlrewrite_list.php%3Flang%3Dru#SITE_DIR#catalogprofoborudovanie_dlya_oshchepita/kartofelechistki_ele­ktricheskie


Причем,  все эти сайты работают на разных шаблонах

Спасибо!!!
 
не работает не только меню, на главной странице новость не открывается
https://www.leto-navsegda.ru/#SITE_DIR#/catalog/chasovoy-poyas-kryma/

здесь эта новость открывается https://www.leto-navsegda.ru/events/789232/
 
Проблема была в том, что установщик  переписал некоторые файлы инфоблоков. Перезаписали эти файлы и все заработало.
Спасибо, Михаил, за полезный блог!
 
Михаил подскажите а как добавить произвольную свою ссылку в выпадающем меню с разделами из каталога
 
Цитата
olegrus написал:
Михаил подскажите а как добавить произвольную свою ссылку в выпадающем меню с разделами из каталога
Просто добавить в меню, там массив собирается:
$aMenuLinksExt - массив с разделами
$aMenuLinks - массив с произвольными пунктами меню
Код
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);
Читают тему (гостей: 2)