left menu ext php
Меню из разделов и элементов инфоблока
инфоблок (каталог):
— Первый раздел
— Подраздел первого раздела
—Элемент 1
—Элемент 2
—Элемент 3
-Второй раздел
— Подраздел второго раздела
—Элемент 1
—Элемент 2
—Элемент 3
Результат:
получаю меню из разделов инфоблока,
то есть так:
то есть примерно такая структура:
инфоблок (каталог):
— Первый раздел
— Подраздел первого раздела
-Второй раздел
— Подраздел второго раздела
А как получить 3-й уровень с элементами?
Помогите, пожалуйста, очень надо!
Это мое первое знакомство с Битриксом. Пока дается все с трудом.
Буду рада любому ответу
в интернете нашла такой код
Он выводить только элененты со всез разделов инфоблока
вот так:
—Элемент 1
—Элемент 2
.
—Элемент N
Возможно ли их как нибуть связать и получить нужный результат?
Теперь проблема с url.
Каталог находиться в разделе адрес_сайта//technika-chetra/
При нажатии на ссылку нет перехода на нужный раздел или элемент. Остается то же соджержание, что и на страницы адрес_сайта//technika-chetra/
в настройке инфоблока так
URL страницы информационного блока:
— /technika-chetra/
URL страницы раздела:
— /technika-chetra/?SECTION_ID=#ID#
URL страницы детального просмотра:
— /technika-chetra/?SECTION_ID=#ID#&ELEMENT_ID=#ID#
что не так? не могу понять.
а если так прописывать
/technika-chetra/
/technika-chetra/#SECTION_ID#/
/technika-chetra/#SECTION_ID#/#ELEMENT_ID#/
то вообще ничего не выходит. белое окно браузера
Или напишите в скайп, bxdevs
Спасибо, Дмитрий, за предложенный выше component.php.
Одно замечание.
в конце component.php нужно добавить вот эту строчку:
SECTION_PAGE_URL»],
);
$arResult[«ELEMENT_LINKS»][$arSection[«ID»]] = array();
>
$this->EndResultCache();
>
>
$aMenuLinksNew[$menuIndex++] = array(
htmlspecialchars($arSection[«
$aMenuLinksNew[$menuIndex++] = array(
$element[«NAME»],
$element[«
Спасибо! Работает, раньше ума хватало только «catalog.section.list» мастырить в таких случаях.
SECTION_PAGE_URL»],
);
$arResult[«ELEMENT_LINKS»][$arSection[«ID»]] = array();
>
$this->EndResultCache();
>
>
$aMenuLinksNew[$menuIndex++] = array(
htmlspecialchars($arSection[«
$aMenuLinksNew[$menuIndex++] = array(
$element[«NAME»],
$element[«
Пункты меню из разделов инфоблока Битрикс
В принципе это стандартная возможность системы управления битрикс, но почему-то часто спрашивают как это сделать. Возможно в документации данный вопрос освещен не достаточно понятно. Постараюсь рассказать по простому, со скринами, как же вывести разделы инфоблока в меню.
Как это сделать, смотрите в видео
Добавляем разделы в инфоблок:
Предположим что нам нужно создать меню из подкатегорий новостей. У нас уже есть готовый инфоблок для новостей и он выведен на сайт. В общем новости работают. И наступил момент, что новостей стало достаточно много и пора их разбить на несколько категорий: «Спорт», «Финансы» и.т.д.
Для начала создаем эти разделы:
Теперь задача создать пункты выпадающего меню, которое автоматически будет брать разделы в качестве своих пунктов. Для этого нужно создать необходимый тип меню в Управлении структурой. В моем случае я создаю тип меню «Меню подраздела»
Создаем в нужном каталоге сайта этот тип меню и рядом с ним создаем такой же файл с приставкой _ext.php.
В моем примере я создаю блог на основе компонента новостей, потому каталог и соответствующий инфоблок называются blog
Настройка ext меню
В настройках компонента инфоблока также прописываем аналогичный путь к элементам и разделам инфоблока
В итоге все вновь создаваемые разделы инфоблока будут автоматически попадать в выпадающее меню (в моем случае, вы можете проделать эти манипуляции для любого типа меню)
Надеюсь объяснил наглядно и понятно, если остались вопросы или есть чем дополнить данную записку, прошу писать в комментариях. Всем успехов.
Меню из разделов инфоблока с элементами
В битриксе можно создавать меню из разделов инфоблока, для этого к компоненту menu подключается файл типа *.menu_ext.php, а в нем вызывается компонент menu.sections. Но нет возможности включать в меню элементы разделов, а это иногда бывает полезно. Так, кстати, сделано на этом сайте.
Для этого я сделал компонент menu.sections.elements, подключается он так же в файле *.menu_ext.php, коды я приведу ниже:
.parameters.php
component.php
.left.menu_ext.php (для примера)
Не забываем размещать свои компоненты в своем пространстве имен, в примере это max22
Комментарии:
Иван, в таком случае нужно получать элементы в цикле по найденым разделам, и ограничивать выборку 5-ю. Либо оставить как есть и уже после в цикле оставить по 5 элементов. Либо уже в шаблоне меню вывод ограничивать 5-ю элементами.
Варианты отличаются по типу создаваемой нагрузки на сервер, какой выбрать оптимальнее нужно смотреть по конкретной ситуации.
Может я не так делаю.
Создал папку /bitrix/components/Nick/menu.sections.elements
Nick, версия битрикса не причем.
Думаю вы к компоненту обращаетесь bitrix:menu.sections.elements или max22:menu.sections.elements, а нужно Nick:menu.sections.elements
Nick здесь это пространство имен компонентов.
раз папка у вас с большой буквы Nick, значит и в вызове компонента используйте большую Nick:menu.sections.elements
либо попробуйте переименовать папку и назвать все маленькими буквами, т.к. я например, не припомню чтобы видел названия пространств в большой буквы. Но врятли в этом дело.
Может быть, если с именами все ок, то просто у сервера прав на чтение не хватает, например, если апатч из под одного юзера работает, а вы папку из под рута создавали. Но это тоже врятли.
Думаю имеет место быть опечатка или что то в этом роде.
Действительно все дело в именах,а именно большая буква N. )))
Подключился компонент, но по-моему что то не так. Если в настройках я ставлю уровень вложенности 1 тогда получаю меню из списка разделов/элементов инфоблока + 1й пункт состоит из раздела/элемента + подразделы + элементы подраздела, т.е. это вроде как лишнее. Т.е. тогда уж и первый пункт должен быть не разворачивающийся.
Если ставлю глубину 2 тогда получаю меню из разделов/элементов и подразделов + элемент подраздела, это уже подходит, но как убрать элементы подразделов?
Nick, Элементы всегда будут подключаться, т.е. если глубина 1, то будут разделы 1-го уровня и их элементы. На выходе имеем 2-х уровневое меню. Если вам нужно другое поведение, то можно в коде компонента добавить необходимые условия.
Насчет ULR понял, у меня они настроены под стандартный компонент menu.sections от того и едет.
>Элементы всегда будут подключаться, т.е. если глубина 1, то будут разделы 1-го уровня и их элементы. На выходе имеем 2-х уровневое меню.
Если я не ошибаюсь, сейчас меню работает ни так. Не пойму как поправить код чтобы при глубине 1 не показывались элементы первого пункта меню, и почему именно первый в остальных же не показывает.
Вот скриншоты:
Все еще мучаю компонент. 🙂
В массиве нет поля Sort, как его туда добавить. Подскажите пожалуйста очень хочется настроить все как надо уж больно хороший компонент. 🙂
Nick, попробуйте заменить стороку
Оказывается это я намудрил с функцией сортировки, она выдавала ошибку.
Подскажите, вот у меня когда я нахожусь в каком нибудь разделе инфоблока меню разворачивает полностью все пункты меню до указанной в настройках глубины, это так задумано или у меня проблема с шаблоном?
При этом свернуть развернутые пункты я не могу при нажатии на пункт просто меняется значек напротив пункта,а сам пункт меню не сворачивается.
и в самой функции перед циклом перебора массивов добавил
if ($ft) <
$res[] = array(
htmlspecialchars($iblock[‘NAME’]),
$iblock[‘LINK’],
array(), //массив доп ссылок
array(
‘FROM_IBLOCK’ => true,
‘IS_PARENT’ => 1,
‘DEPTH_LEVEL’ => 1,
),
);
$ft = FALSE;
>
В шаблоне по этому параметру будете определять раздел это или нет.
PS Что за проблема была со ссылками? Шаблоны пути были не указаны в настройках инфоблока?
Для вашего меню пришлось поправить, но теперь вроде все заработало, осталось разобраться с внешним видом.
А вообще очень здорово вы сделали. Я перебрал 3 или 4 варианта этого кастомного компонента и ни один нормально не работал.
Я первым делам в шаблоне пишу:
‘;
Смотрю что приходит из компонента.
Посмотрела, похоже, что IS_SECTION все-таки заполняется правильно:
Но почему тогда при фильтрации они не различаются. Может, неправильно обращаюсь? Как писать:
или
Олег, для этого нужно изменить код:
Здравствуйте! посоветуйте пожалуйста.
что можно сделать пожалуйста подскажите
Подскажите,а как можно реализовать загрузку пунктов меню только по указанному разделу инфоблока?
Желательно чтобы можно было в коде файла меню указывать раздел инфоблока, например добавив SECTION_ID:
[. Код вырезал для экономии места. ]
К сожалению не очень дружу с php, если можно покажите пример кода.
Как добавить параметр в конпонент я разобрался, вроде бы сделал верно: «SECTION_ID» => array( «NAME» => GetMessage(«SECTION_ID_VARIABLE_PHR»), Не пойму как сделать фильтр в компоненте по этому параметры, компонент у меня измененный:
[. Много кода вырезал для экономии места. ]
Николай, фильтровать разделы с подразделами по разделу родителю нужно с помощью полей LEFT_MARGIN, RIGHT_MARGIN принцип следующий:
1. Получаете родительский раздел по SECTION_ID, у него получаете поля LEFT_MARGIN, RIGHT_MARGIN.
PS из начала убираем [ВАШ БЛОК С ПОЛУЧЕНИЕМ LEFT_MARGIN, RIGHT_MARGIN]
Left menu ext php
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
У нас часто спрашивают, сколько нужно заплатить
Но у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.
Left menu ext php
Компонент выводит меню указанного типа. Компонент является стандартным и входит в дистрибутив модуля.
Описание menu
В визуальном редакторе компонент расположен по пути: Служебные > Навигация > Меню.
Компонент относится к Главному модулю.
В поставку продукта входят следующие шаблоны компонента Меню (bitrix:menu):
Параметры
Пример вызова
Смотрите также
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.