1с битрикс — Не работает левое меню и гиперссылка, что делать


Содержание

Новичкам — разбираемся с шаблоном меню horizontal_multilevel

В статье разберем «по строкам» самый частоиспользуемый шаблон компонента bitrix:menu, который позволяет выводить меню произвольного уровня вложенности.

PHP код шаблона

Ниже приведен полный php-код шаблона horizontal_multilevel с подробными комментариями.

CSS код шаблона

Кратко пробежимся по css-файлу и выясним, какие правила за что отвечают при визуальном оформлении меню.

JS файл шаблона

Этот скрипт существует с одной единственной целью — научить браузер Internet Explorer версии 6 и ниже «понимать» наведение мышью на тег
. При наведении элементу присваивается класс «jshover», после «ухода» курсора за пределы элемента — класс снимается.

Заключение

Стандартный шаблон horizontal_multilevel довольно гибкий и позволяет реализовать различные вариации меню правкой только файла стилей. Однако, некоторые необходимые вещи не реализованы — количество пунктов меню n-го уровня можно узнать только полным перебором массива-результата. Еще более сложной задачей является «выделение» в цикле последнего пункта подменю, например, для выделения скругленной рамкой.

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

PS: небольшой привет разработчикам. Этот баг повторяется очень часто при установке продукта из Opera

1с битрикс — Не работает левое меню и гиперссылка, что делать?

Предпочтительный вариант связи
info@site-ontop.ru
Написать

с 10.00 до 20.00 (мегафон)
Не всегда могу ответить

Сделаем быстрый и удобный сайт повысим конверсию

Качественно | Современно | Безопасно

Битрикс. Делаем меню из элементов инфоблока

Категории

Часто требуется сделать, чтобы подменю состояло из элементов конкретного инфоблока, мы рассмотрим как это сделать.

Рассмотрим на примере моего сайта

К главному меню под названием «Верхнее горизонтальное меню» к разделу «Услуги» мне надо вывести подменю из элементов инфоблока «Услуги по разработке».

1) Если инфоблок уже создан, то в редактирование информационных блоков в административной панели «Контент» — «Инфоблоки» — «Типы инфоблоков» мы находим нужный Вам инфоблок.

В моем случае меня интересует инфоблок «Услуги по разработке», у которого ID равен 11.

2) Создаем новый тип меню в административном разделе «Настройки» — «Настройки продукта» — «Настройки модулей» — «Управление структурой»

Создаем тип меню «left_infoblock» с названием «Меню элементов инфоблока», конечно Вы можете указать удобное Вам наименование.

3) Теперь в папке, где будет размещаться инфоблок (согласно его настройке) создаем файлы отвечающие за меню.

Выбираем в типе меню только что нами созданное и нажимаем «Сохранить». Меню будет пустое, так как формироваться оно будет на основе инфоблока.

Теперь нам надо создать дополнительный обработчик данного меню. Для этого создается в этой же папке с меню файл под названием «.ваше_меню.menu_ext.php», а в моем случае «.left_infoblock.menu_ext.php»

В него мы скопируем следующий код:

Нам осталось в коде поправить переменную $IBLOCK_ >

4) Выводим меню на страницу сайта.

Добавляем компонент «Меню» из «Служебные» — «Навигация»

И теперь настраиваем его. Выбираем «Тип меню для первого уровня» наше меню со ссылкой на раздел инфоблока, «Уровень вложенности меню» делаем 2 и в «Тип меню для остальных уровней» ставим «Меню элементов инфоблока».

Обязательно должна стоять галочка «Подключать файлы с именами вида .тип_меню.menu_ext.php»

Если все сделали правильно у Вас сформируется подменю из элементов инфоблока.


Битрикс как сделать ссылку на следующую и предыдущую новость

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

Как узнать ссылку на следующий или предыдущий элемент в 1С-Битрикс

Рассмотрим на примере компонента новостей — включите визуальный редактор и наведите на вашу новость на детальной странице и выберите пункт «Редактировать шаблон компонента». Лично я предпочитаю потом заходить в админку, копировать путь к файлу и работать непосредственно через FTP, а вы делайте как вам удобней, но наша цель добраться до самого конца кода.

После этого, замените в коде ниже ID вашего инфоблока (мой 45) — IBLOCK_ID:

Если вы все сделали правильно, то под новостью появятся ссылки на соседние материалы.

Важно! $Element >

Давайте теперь не просто напишем следующая, а выведем имена этих новостей. Для этого добавим в наш массив выбранных параметров, а именно $arSelect — такой параметр как NAME:

И наш полный код будет выглядеть следующим образом:

Пишите ваши комментарии или предложения о том, как можно улучшить данный код. Я не тестировал его с большим количеством рубрик, поэтому в кое-каких случаях могут быть неточности.

UPDATE: вариант, который предложил наш читатель ��

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
— Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
— Разработка функционала с нуля и доработка кода на уже созданных проектах;
— Адаптивная вёрстка макетов и натяжка на Битрикс;
— Парсинг файлов и выгрузка на сайт (форматы — CSV, XML, XLSX, JSON)
— Интеграции со сторонними сервисами по API;
— Многоязычные версии и многое другое.

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

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

Как это сделать, смотрите в видео

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

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

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

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

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

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

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

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

Цукерберг рекомендует:  Введение в глобальные переменные WordPress

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

  • «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», уровень вложенности, этой цифрой можно выводить подразделы разделов если иерархия многоуровневая

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

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

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

Меню на основе разделов и элементов в битрикс

Не в первый раз поступает задача по созданию меню на основе разделов и элементов инфоблока.
За основу я взял наработку, которую выложил Дмитрий Зеленецкий на форуме 1с-Битрикс.

Содержание:

  • URL страницы раздела
  • URL страницы детального просмотра


Далее настройка доступа — чтение для всех пользователей(рис. 2)

Кастомизация компонента

Для реализации потребуется перенести menu.sections в своё пространство имён и кастомизировать его.
В папке /local/components/ создаёте своё пространство имён(например my_namespace ). Копируйте компонент menu.sections по адресу /local/components/my_namespace/ .
Конечный вариант компонента можно скачать тут.

Размещаем меню

Шаг 1

Я буду размещать меню в файле /company/index.php
Добавляем в индексный файл код вызова меню:

Шаблон «sections-elements» я тоже выкладываю его нужно закинуть по адресу /local/templates/шаблон-сайта/components/bitrix/menu/ .
Он корректно поддерживает следующую структуру разделов и элементов:
Разделы в корне и элементы в этих разделах. Чтобы правильно отображались вложенные разделы, нужна доработка шаблона.

1с битрикс — Не работает левое меню и гиперссылка, что делать?

Чтобы создать разделы и вывести их в меню, нужно перейти в публичную часть сайта и в режиме правки создать раздел.

Появляется всплывающее окно, в котором необходимо прописать название раздела. Символьный код сформируется автоматически.

Нажимаем кнопку «Далее» и переходим на создание пункта меню. Выбираем название пункта. Оно может полностью соответствовать названию раздела или иметь некоторые отличия (например, если название раздела слишком длинное и для названия пункта, можно немного сократить).

Из выпадающего списка выбираем тип меню, в которое вставится пункт. В данном случае тип меню – верхнее.

Нажимаем «Далее» и прописываем основные свойства раздела.

  • Описание раздела
  • Заголовок окна браузера
  • Ключевые слова
  • Продвигаемые слова.

Нажимаем «Готово» и переходим к редактированию страницы. В правом меню выпадающего окна выбираем Контент → Новости (этот компонент выбирается при создании текстового раздела).

Затем зажимаем компонент «Новости» (он выделен цветом) левой кнопкой мыши и переносим в контентную часть страницы. Появится всплывающее окно редактирования параметров компонента.

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

Открывшееся окно с параметрами и будет примером, на который мы будем ориентироваться, редактируя нужный нам компонент.

Редактирование параметров компонента

Для начала выбираем из выпадающего списка шаблон компонента.

Переходим к основным параметрам. Выбираем тип инфоблока (в той директории, в которой его создавали, в нашем случае – Контент).

В выпадающем списке выбираем наш инфоблок – курсы.

Активируем параметр «Показывать фильтр».

Переходим к настройке отображения элементов в определенном порядке. Из выпадаюшего списка выбираем необходимые значения для:

  • первой сортировки;
  • направления первой сортировки (по возрастанию или по убыванию);
  • второй сортировки;
  • направление второй сортировки (по возрастанию или по убыванию).

Установлены автоматические настройки сброса кеша. Рекомендуется уменьшить время кеширования.

Дополнительные настройки

По аналогии с уже заданными параметрами компонента, в дополнительных настройках деактивируем параметр «Включать инфоблок в цепочку навигации».

Настройки списка

В настройках списка и поле «Поля» выбираем необходимые значения для отображения элемента в списке. При выборе 2-х и более элементов нужно выделить необходимые значения при нажатой клавише Ctrl.

Настройки детального просмотра

В настройках детального просмотра редактируются параметры отображения конкретного элемента, после того, как пользователь прошел из списка по ссылке анонсной части. В поле «Поля» выбираем необходимые значения для отображения элемента в списке. При выборе 2-х и более элементов нужно выделить необходимые значения при нажатой клавише Ctrl.

В поле «Свойства» нужно выделить свойства, которые мы заранее прикрепили в свойствах инфоблока. Нажимаем клавишу Ctrl и делаем множественный выбор, не отпуская клавишу.

Если нужно прикрепить дополнительные свойства, нужно узнать код свойств из Рабочий стол→Контент→Инфоблоки→Типы инфоблоков и прописать этот код в дополнительных текстовых полях.

Активируем показ ссылок на соцсети.


Нажимаем сохранить параметры, попадаем в окно «Добавление (Редактирование)» страницы и сохраняем изменения страницы.

1с битрикс — Не работает левое меню и гиперссылка, что делать?

Чтобы раскрыть только активный пункт левого меню в Битриксе, нужно сделать следующее:

1. Создать 2 типа меню, например left_one и left_two, далее в настройка компонента указать какое из них Родительское и какое второстепенное.

2. Нужно подправить файл functions.php (лежит тут /bitrix/components/bitrix/menu/) следующим образом:

//Menu from files
$subMenuExists = false;
if ($currentLevel

//Menu from files
$subMenuExists = false;
if ($currentLevel

Редактирование МЕНЮ в 1С Битрикс

  • CSS / CSS3
  • Flexbox CSS
  • JavaScript
    • JavaScript с нуля
    • JS и Jquery
  • Уроки по 1С-Битрикс
    • Контент менеджер
      • Авторизация на сайте
      • Элементы управления
      • Работа с информацией
      • Управление структурой
    • Сайт на 1С-Битрикс
      • Создание landing page
  • Видео новости
  • Модули расширений
  • Расширения и плагины
    • Bootstrap

Дополнительное видео

ПОДПИСКА на УРОКИ

В данной статье подробно разберем:

  • Что такое меню в 1С Битрикс?;
  • ТИП меню и его виды;
  • Статическое меню файл с массивом « $aMenuLinks »;
  • Динамическое меню файл с приставкой _ext.php.

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

При работе с меню в 1С Битрикс появляются вопросы почему какие-то пункты не отображаются, какие-то не подлежат изменению?

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

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

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

Обо всем этом читайте далее…


Что такое меню в 1С Битрикс?

Само по себе меню, как и везде, это элемент дизайна, при помощи которого мы упрощаем навигацию по сайту. Их может быть множество типов, верхнее, нижнее, левое и т.д., но в системе используются по умолчанию два, левое и правое меню, и это не мешает добавлять нам остальные типы при их необходимости.

Также меню разделяется на основное и второстепенное. Основное меню соответствует самому верхнему уровню, второстепенное меню содержит ссылки на подразделы и документы текущего раздела.

Основной момент, который вы должны уловить, что меню в системе наследуется. То есть, если выбираем в компоненте определенный тип меню, то это меню будет отображаться, ниже на все разделы и страницы сайта, до момента пока в нем не создадим собственное меню.

Думаю мало, кто понял, что я тут написал, но давайте подробно разберемся.

Что такое тип меню?

Тип меню это определенные настройки в модуле управления структуры, сам тип будет использован как префикс файла с шаблоном меню, а также он по этому префиксу идентифицируется самой системой. Как пример можно рассмотреть верхнее меню. ( .top.menu.php ).

Для примера создадим свой тип меню, которого в системе сейчас нет, присвоим ему тип « right » и назовем «Правое меню», сохранимся. После этих сохраннений у нас будет возможность выбирать в компоненте «Правое меню», а также выбирать этот тип в момент формирования раздела.

Вернемся на главную страницу и создадим в ней раздел с названием «DWS Меню», установим его отображение в верхнем меню сайта.

При помощи административной панели выбираем «Создать раздел», в нем оставляем настройки по умолчанию, жмем далее, тип меню выбираем «Верхнее меню», хотя заметьте, появился другой тип «Правое меню» который мы до этого создавали. Его задействуем немного позже, жмем далее, и готово.

На страничке пропишу тестовый текст (Основы управления меню в системе 1С Битрикс) и сохраняю форму.

И так, система перенаправили на вновь созданную нами страницу, и отобразился пункт в верхнем меню «DWS Меню» который мы создавали. Прогуливаясь по разделам сайта, этот пункт не изменчив и везде присутствует, это все благодаря тому что другие его разделы унаследовали.

Цукерберг рекомендует:  Оптимизация - Оптимизация под мобильные устройства Web

Разбор отображения меню

Теперь давайте подробно разберемся, каким образом меню отображается.

Любое меню в 1С Битрикс строится на основе двух составляющих:

  • Файла с массивом данных « $aMenuLinks », в нем определяется состав меню, где задаем название пунктов, его ссылки, по нажатию на которые переходим по структуре сайта. Все управление массивом осуществляется через административный раздел.
  • И вторая составляющая, это компонент, который является шаблоном внешнего представления меню. Он представлен в виде PHP кода, в нем обрабатывается массив данных, выдавая на выходе готовую HTML страничку.

И давайте далее разберем более подробнее каждый из пунктов.

Все данные по каждому типу меню хранятся в отдельном файле, имя этого файла будет содержать: точка.(тип меню).menu.php . Если открыть структуру файлов в административной части сайта, мы видим в главной директории присутствует несколько типов меню, в нашем случае « Меню типа bottom », тут их три файла которые выводят информацию для нижнего меню и « Меню типа top », в нем содержится массив для верхнего меню.

Как я упоминал в начале, любое меню наследуется, то есть все разделы отображают его в том виде, в котором оно находится в главной директории. Если необходимо изменить пункты меню в определенном разделе, для этого достаточно скопировать этот файл с определенным типом, в раздел где по иному меню должно отображаться, и далее его можно отредактировать в визуальной части сайта. После этого оно применится к текущем разделу и его подразделам.

Другой из вариантов, достаточно перейти в раздел где формируем меню, жмем кнопку создать и повторно описываем всю структуру.

Для примера мы и создали тестовый раздел, на котором продемонстрирую данные операции.

Перейдя в новый раздел DWS меню, мы видим полное отображение верхнего меню, в принципе, как и в других разделах.

Допустим, мы хотим заменить несколько пунктов меню, а возможно и некоторые из текущего списка исключить.

Можно пойти несколькими вариантами как упоминал выше, находясь в данной директории создать меню, при помощи административной панели, жмем кнопку меню, выбираем тип меню, который хотим создать, в нашем случае «Верхнее меню», по нажатию на ней появилась форма, где система предлагает заполнить название разделов и его ссылку. Тут обратите внимание, что меню создается в разделе (dws-menu). Если его создать в другом разделе оно применится к тому, в котором мы его создаем. Так же оно будет наследоваться всеми разделами, включенными в данную директорию.

Для примера давайте заполним форму тестовыми данными и сохранимся.

Появились пункты, которые мы формировали, переходя по другим разделам, эти пункты не отображаются.

Удалив вновь созданное меню, оно приобретает прежний вид.

Следующий способ, если нам нужно продублировать это меню со всей его структурой, без повторного его создания. Для этого достаточно скопировать файл «тип меню», который находится в основной директории. В нашем случае это верхнее меню, файл называется, .top.menu.php , копируем его в наш раздел DWS меню.

Далее открываем меню на редактирование, я воспользуюсь кнопкой меню на панели администратора, выбираю «тип меню» которое буду редактировать, открывается форма со списками разделов. Где в первую очередь укажем ссылки именно с этой директории.

Изменяя и редактирование данных меню разделов, по своей сущности мы редактируем файл .top.menu.php расположенный в нашем разделе. Для примера открою этот файл, при помощи административного меню отредактируем его. К примеру, раздел DWS меню поместим в самое начало при помощи данных стрелок, затем удалим пункт в мену «Форум, События, Блоги, Работа» и сохранимся.

Как видим у нас исчезли те пункты, которые мы удалили из меню, открыв файл на редактирование .top.menu.php мы этих массивов там не увидим, но если перейдем в другой раздел, то верхнее меню на сайте полностью отображается.

Таким образом, если нам нужно отредактировать нижнее меню, копируем данный «Тип меню» в наш раздел.

Отредактируем его при помощи режима правки, наводим на меню, жмем «Редактировать пункты меню», изменяем ссылки, для примера удаляем пару пунктов, сохраняемся.

Как видим, меню отображается с теми пунктами, которые оставили в списке, сам файл .bottom1.menu.php изменен. Переходя в другие разделы сайты, меню отображается полным, но в нашем разделе оно будет в том виде, в котором мы его изменили.


Я думаю с этим проблем быть не должно, тут все предельно понятно.

Динамическое меню / Файл с приставкой _ext.php

Теперь разберемся со следующим моментом. Возможно, у вас возникают ситуации, что в момент редактирования не все пункты меню отображаются в надлежащем виде. Как, к примеру, в нашем случае с верхним меню.

Это происходит когда в компоненте bitrix:menu подключено динамическое меню при помощи отмеченного пункта «Подключать файлы с именами вида .тип_меню.menu_ext.php», если в компоненте мы ее убираем, меню пропадает для всех разделов, так как компонент подключен в структуре сайта.

В данном случае в качестве пунктов меню выводится название каталога «Новостей», и создаются они на основе инфоблока >top.memu_ext.php с приставкой _ext .

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

Вывод меню на странице сайта

Отображения меню на страницах сайта выполняется с помощью компонента Меню (bitrix:menu).

Нам достаточно скопировать его код и поместить в область сайта, что бы оно там отобразилось.

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

Создание меню и внедрение его в шаблон сайта

Что бы вставить меню, нам нужен код компонента, который его вызывает. Для этого откроем страницу на редактирование, затем, выберу из служебных компонентов «navigation», «Меню», перетаскиваю его в форму, в настройках оставляю все по умолчанию, жмем сохранить.

Открываю форму в режиме кода, вырезаю данный компонент, и закрываю окно.

«Основы управления меню в системе 1С Битрикс.»

Далее следующим этапом вставим наш код в правый сайт бар.

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

Переходим в визуальную часть, у нас появилась такая иконка, символизирующая, что есть компонент. По заданию меню нужно отобразить только в нашем разделе, для этого переходим в «DWS меню», и тут можно создать его несколькими способами:

  • Через административное меню, выбираем тип «Правое меню», затем прописываем их название, ссылки, куда пользователь по нажатию будет переходить и сохраняемся.
  • Второй способ через режим правки, наводим на иконку, далее, «Создать меню в текущем разделе», заполняем названия и ссылки, сохраняемся.

Видим, что меню отобразилось, создался системой файл .right.menu.php с приставкой .right в нашем разделе, открыв его на редактирование, в массивах расположены все наши пункты, которые до этого с вами формировали. Для примера давайте поменяем его содержание, и сохранимся. Разделы меню поменялись, а при переходе по другим разделам меню, «Правое меню» скрывается. То, что изначально хотели добиться.

Как видите, на самом деле в Битриксе меню довольно просто формируется и управляется, не нужно обладать знаниями программирования что бы добавить меню того или иного содержания, достаточно просто еще раз внимательно прочитать статью.

Создание меню в Битрикс — Часть 1

Привет! И так, продолжаем разруливать тему «Битрикс». И сегодня посмотрим как на самом деле происходит создание меню на Битрикс. Как это ни странно, но без небольшого багажа знаний и ухищрений этот процесс может вызвать затруднения у многих обывателей, решивших что Битрикс им по зубам:)

Что именно будем делать в этом уроке?

Создадим на сайте 3 типа меню:

Верхнее — тип top (файлы с именем .top.menu.php)
Верхнее 2 и 3 уровня — тип subtop (файлы с именем .subtop.menu.php)
Нижнее — тип bottom (файлы с именем .bottom.menu.php)
Верхнее меню будет наследоваться из разделов и будет многоуровневым. Нижнее же меню будет обычным одноуровневым меню, лежащим в корне.

Сделаю небольшой экскурс. Так как практически вся работа битрикса (обработка данных и их вывод) основана на различных компонентах, то стоит пояснить с чем мы имеем дело в данном уроке.

Компонент Menu ( bitrix:menu).

Компонент выводит меню указанного типа. Компонент является стандартным и входит в дистрибутив модуля. В визуальном редакторе компонент расположен по пути: Служебные > Навигация > Меню. В поставку продукта входят следующие шаблоны компонента Меню (bitrix:menu):

  1. Горизонтальное многоуровневое выпадающее меню (Яркий) (horizontal_multilevel);
  2. Левое меню (Яркий) (left);
  3. Вертикальное меню по умолчанию (Встроенный шаблон) (.default);
  4. Голубое меню в виде закладок (Встроенный шаблон) (blue_tabs);
  5. Серое меню в виде закладок (Встроенный шаблон) (grey_tabs);
  6. Древовидное меню (Встроенный шаблон) (tree);
  7. Вертикальное многоуровневое выпадающее меню (Встроенный шаблон) (vertical_multilevel).

Пример вызова

Немного о параметрах, которые вы видите в примере вызова компонента.

ROOT_MENU_TYPE — Тип меню для первого уровня. Указывается тип меню верхнего уровня, соответствующий данному меню.

Цукерберг рекомендует:  Русский язык для IT-специалиста как не потерять самого себя

MAX_LEVEL — Уровень вложенности меню. В настройках компонента в выпадающем списке можно выбрать уровень вложенности. Доступно четыре уровня. Чем больше число, тем пункты более низких уровней будут отображены.

CHILD_MENU_TYPE — Тип меню для остальных уровней. Здесь указываем тип меню для меню нижних уровней.

USE_EXT [Y|N] Дает возможность подключать файлы с именами вида .тип_меню.menu_ext.php. Подобные файлы нам очень понадобятся когда придется склеивать воедино нужные статические элементы меню и динамически сгенерированные пункты.


DELAY [Y|N] Откладывает выполнение шаблона меню. При отмеченной опции выполнение шаблона будет происходить после загрузки страницы. Очень удобен при включенном кэшировании компонента, если нужно все же выполнять какие-то действия по модификации внешнего вида пунктов меню в зависимости от текущей страницы. Например, добавление пунктов меню в компонентах.

ALLOW_MULTI_SELECT [Y|N] — Разрешить несколько активных пунктов одновременно.

CACHE_TYPE — Тип кэширования.Варианты:

  1. A — Авто: автоматически обновляет кэш компонентов в течение заданного времени;
  2. Y — Кэшировать: для кэширования необходимо определить время кэширования;
  3. N — Не кэшировать: кэширования нет в любом случае.

MENU_CACHE_TIME — Время кэширования. Задается в секундах.

MENU_CACHE_USE_GROUPS — Учитывать права доступа. При кэшировании будут учитываться права доступа пользователя к тем или иным пунктам меню. Если меню построено без учета прав доступа, флажок лучше снять — это уменьшит размер кэша.

MENU_CACHE_GET_VARS — Значимые переменные запроса. Если отображение меню зависит от параметров страницы, то при использовании кэширования необходимо указать параметры в этом поле. Параметры вводятся через запятую.

Стандартный набор параметров впечатляет, правда?)

Перейдем непосредственно к коду!

Верхнее меню будет наследоваться из разделов и будет многоуровневым. Нижнее меню будет обычным одноуровневым меню, лежащим в корне. Создадим в корне файловой системы меню. Это можно сделать через административный раздел, либо же просто создать файл с именем .ТИП_МЕНЮ.menu.php следующего содержания (пример для файла меню типа top):

Если к примеру нужно создать вложенные пункты в пункте About в верхнем меню, можно воспользоваться архитектурой 1С-Битрикс и создать разделы /about/ и /about/profile/, а так же по меню типа «top» в каждом из них (пока не будем создавать страниц, только файловую структуру разделов и меню).

Далее надобно разместить сам компонент меню bitrix:menu на тестовой странице или же где-нибудь в шаблоне, к примеру в footer.php или header.php, в дальнейшем будем работать с ним.

Нижнее меню (bottom)

Советую начать с нижнего меню, оно проще и позволит хорошенько изучить и понять логику работы компонента. Воспользуемся шаблоном .default (он есть в стандартной сборке) и зададим для работы компонента меню типа «bottom» (нижнее):

Этот код вам уже знаком с примера вызова компонента, который мы рассматривали выше. Так как в Битриксе шаблоны компонентов изначально лежат в папках с компонентами, лучше скопировать оригинальный дефолтный шаблон в папку с конкретным общим шаблоном нашего сайта, это надо делать как минимум для того чтобы не портить шаблон ядра компонента и чтобы все наши наработки не слетели при первом же обновлении системы. Поэтому скопируем шаблон компонента под именем «bottom» в шаблон сайта. Хоть это очень лаконичный шаблон, в целях обучения мы не возьмём от него практически ничего:

В этом коде вы можете познакомится со своим другом, который будет вас преследовать на всех этапах разработки на Битрикс, это суперглобальный массив $arResult. В нем хранится все, что может вам понадобится в процессе создания сайта, а то что вы там не найдете можно в любой момент подключить или выбрать с базы благодаря чудо-файлу result_modifier.php, который находится в папке шаблона каждого компонента.Если в изначальной сборке вы его не обнаружили ничего страшного, его всегда можно создать и использовать на свое усмотрение.

Создается этот файл еще и для того, чтобы отделить логику от верстки, то есть обработав всю логику в файле result_modifier.php все полученные данные будут доступны для вывода в шаблоне компонента (файл template.php).

Давайте сделаем «вардамп» наших элементов и посмотрим, что за параметры нам предоставит массив $arResult.

Поставим этот код сразу после начала цикла и сохраним шаблон. Основное, на что нам надо обратить внимание, это параметры:

  1. [SELECTED]
  2. [ITEM_INDEX]

Параметр [SELECTED] не пуст тогда, когда пункт меню соответствует нашему местонахождению в структуре сайта, то есть когда пункт выбран. Значит, мы легко можем использовать его для вывода нужного нам стиля, к примеру:

Параметр [ITEM_INDEX] отражает номер пункта меню в массиве. Вся хитрость в том, что мы можем использовать его для простановки разделителей между главными пунктами меню. Слегка подкорректируем вёрстку и выведем разделитель следующим кодом:

В итоге, на данном этапе, соединив все в кучу, шаблон компонента меню будет выглядеть так:

Также мы смело можем удалить лишние файлы, который нам достались при копировании оригинального шаблона .default.

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

Вуаля!) Простое нижнее меню готово, причем мы успели сделать разделители между пунктами, а также сделали возможность выделять активный пункт, заняло это всего две строчки кода, поэтому все очень быстро и удобно, главное понять логику работы компонента.

Ждите скоро продолжение — реализацию динамического верхнего меню и подписывайтесь на нас в соцсетях:) Будет очень интересно!

Ссылка в меню 1C-Битрикс в новом окне

Задача — открыть одну или несколько ссылок ( пунктов ) из меню в новом окне (CMS 1С-Битрикс).

Способ 1. Редактирование пункта меню 1С-Битрикс, прописываем дополнительные параметры в редакторе

1. Все правки будут в самом меню, где необходимо организовать открытие ссылки в новом окне. — находим — Меню типа «left»

2. В режиме редактирования меню переходим в расширенный режим

3. Пункту меню, который необходимо открывать в новом окне, задаем дополнительные параметры

4. Сохраняем меню


Способ 2. Редактирование пункта меню 1С-Битрикс, прописываем дополнительные параметры в режиме PHP

1. Открываем файл меню в режиме Редактировать как PHP

2. Находим в коде необходимый нам пункт меню

сначала конструкция выглядит так:

и добавляем в него:

получаем конструкцию типа

3. Сохраняем файл

  • Оцените материал

SeRbGa

Последнее от SeRbGa

Оставить комментарий

You have no rights to post comments

Свежие статьи

  • 1
  • 2
  • 3
  • 4

Смена редиректа после авторизации НЕ…

Август 1, 2020 SeRbGa

Хочешь проверить свой навык владения…

Июль 27, 2020 SeRbGa

Коллекция CSS3 эффектов :hover

Июль 27, 2020 SeRbGa

Поочередное разворачивание и сворачи…

Июль 26, 2020 SeRbGa

Как отключить проверку обновлений Jo…

Октябрь 19, 2015 SeRbGa

Сторонний плагин в joomla не работае…

Сентябрь 29, 2015 SeRbGa

Добавить в скрипт замену запятой, на…

Февраль 17, 2015 SeRbGa

Шпаргалки для начинающих фотографов


Февраль 2, 2015 SeRbGa

Поиск Virtuemart 2, 3 — дефис «…

Январь 20, 2015 SeRbGa

Кодировка в счете PDF Virtuemart v.2…

Ноябрь 19, 2014 SeRbGa

Поиск Virtuemart 2 — расширение диап…

Октябрь 7, 2014 SeRbGa

Подборка 4 PSD макетов Apple Macbook

Сентябрь 25, 2014 SeRbGa

Большая подборка красивых PSD макето…

Сентябрь 25, 2014 SeRbGa

Новости и новинки для дизайнеров (№ …

Сентябрь 22, 2014 SeRbGa

Photoshop actions — photos to painte…

Сентябрь 22, 2014 SeRbGa

25 потрясающих инструментов и ресурс…

Сентябрь 17, 2014 SeRbGa

КАТЕГОРИИ

Популярные статьи

  • 1
  • 2
  • 3
  • 4

Добавить в скрипт замену запятой, на точ…

Иконки социальных сетей — набор (PSD, AI…

K2 — как убрать item и >Октябрь 24, 2013 No comments

Интеграция JComments с K2

Мега подборка JQuery Sl >Август 1, 2014 No comments

Метки обрезки или Обрезные метки в illus…

Кодировка в счете PDF Virtuemart v.2 (v.…

Страница ошибки 404 в Joomla 1.5,2.5,3.0…

RSForm Pro — экспорт заполненных полей в…

Анимированный фон (background) для сайта…

Как вставить php код. Конструкция включе…

Установка phpMyAdmin в «Битрикс веб-окру…

Как сделать произвольные title в компоне…

Текстуры Пыль и Шум

Выводим форму модуля WEBFORM или CONTACT…

Ошибка: Inval >Январь 28, 2014 No comments

Расширение Gr >Июнь 3, 2014 No comments

Wacom Intuos Pro — обзор графических пла…

Бесконечная рекурсия. Эффект Дросте

Ссылка в меню 1C-Битрикс в новом окне

последние комментарии

Иконки социальных сетей — набор (PSD, AI)

Шпаргалки для начинающих фотографов

Кодировка в счете PDF Virtuemart v.2 (v.3) (invoice pdf по-русски)

ON-Line Блог SeRbGa.ru предоставляет самую свежую и актуальную информацию для веб-дизайнеров и разработчиков в виде тематических материалов, уроков созданных собственноручно, а так же переводов статей и новостей, полученных с зарубежных информационных ресурсов.

Копирование материалов сайта разрешено только с указанием активной индексируемой гиперссылки на данный сайт!

Я сам вдохновляюсь материалами, которые предлагаются вам на обозрение, будь то интересные руководства или полезные и впечатляющие подборки (дизайнов, шаблонов, макетов и т.д.), и по возможности всегда сохраняется ссылка на источники, и сообщается автор изображений, использованных в подборках или руководствах. Зачастую, ссылка на источник не ведёт напрямую к автору шедевра, но если кто-то захочет использовать какие-либо изображения, графические элементы, исходники, которые здесь предоставлены, то единственное требование, выставленное к перепосту, заключается в сохранении ссылки на источник, а также соблюдение условий лицензионного соглашения (если таковое имеется). Если кто-то желает модифицировать тот или иной продукт, изменить его, подкорректировать, то ему придется самостоятельно искать настоящего автора материала.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих