bitrix:menu
$APPLICATION->IncludeComponent(
"bitrix:menu",
"head-menu",
[
"ALLOW_MULTI_SELECT" => "N",
"CHILD_MENU_TYPE" => "left",
"DELAY" => "N",
"MAX_LEVEL" => "2",
"MENU_CACHE_GET_VARS" => [],
"MENU_CACHE_TIME" => "3600",
"MENU_CACHE_TYPE" => "N",
"MENU_CACHE_USE_GROUPS" => "Y",
"ROOT_MENU_TYPE" => "top",
"USE_EXT" => "Y",
"COMPONENT_TEMPLATE" =>
"head-menu"
],
false
);Настройка меню из разделов инфоблока
Чтобы настроить меню, которое подтягивается из разделов инфоблока, следуем плану:
- Подключить меню типа *ext в компоненте.
Для этого нужно зайти в настройки компонента меню, которое мы подключили, и выбрать соответствующую настройку:

- Создать файл .тип_меню.menu_ext.php в корне сайта (например, в соответствии со скрином выше, должен быть создан такой файл: .head_menu_2.menu_ext.php)
- В созданном файле .тип_меню.menu_ext.php разместить вызов компонента:
<?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" => "/catalog/", // Каталог инфоблока на сайте
"SECTION_PAGE_URL" => "#SECTION_CODE_PATH#/", // Подставляем ID раздела
"DETAIL_PAGE_URL" => "#SECTION_CODE_PATH#/#ELEMENT_CODE#", // Полный путь к элементу инфоблока
"IBLOCK_TYPE" => "lot", // ID типа инфоблока из которого выводим
"IBLOCK_ID" => "5", // ID инфоблока из которого выводим
"DEPTH_LEVEL" => "1", // Уровень вложенности, по которой будут (или нет) выводиться подразделы разделов
"CACHE_TYPE" => "A", // Тип кеширования
"CACHE_TIME" => "36000000" // Время кеширования
),
false
);
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);- Чтобы из компонента «bitrix:menu.sections» в компонент «bitrix:menu» передавались верные адреса разделов (ссылки на разделы), нужно настроить ЧПУ в инфоблоке, из которого будут подтягиваться разделы:

Настройка меню из элементов инфоблока
Чтобы вывести пункты меню из элементов, или из чего угодно другого, нужно действовать согласно приведенной выше схеме. Нужно, чтобы в $aMenuLinks разместились нужные пункты меню. Чтобы в меню появились названия элементов, файл .тип_меню.menu_ext.php будет выглядеть так:
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
if(CModule::IncludeModule("iblock")) {
$res = CIBlockElement::GetList(
false,
[
"IBLOCK_ID"=> $ibId, // ID нужного инфоблока
"ACTIVE"=>"Y"
],
false,
false,
["NAME","DETAIL_PAGE_URL"],
);
while($arFields = $res->Fetch()){
$aMenuLinksExt[] = Array(
$arFields['NAME'],
$arFields['DETAIL_PAGE_URL'],
);
}
}
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks);bitrix:news.list
$APPLICATION->IncludeComponent("bitrix:news.list", "component-template", [
"ACTIVE_DATE_FORMAT" => "d.m.Y", // Формат показа даты
"ADD_SECTIONS_CHAIN" => "Y", // Включать раздел в цепочку навигации
"AJAX_MODE" => "N", // Включить режим AJAX
"AJAX_OPTION_ADDITIONAL" => "", // Дополнительный идентификатор
"AJAX_OPTION_HISTORY" => "N", // Включить эмуляцию навигации браузера
"AJAX_OPTION_JUMP" => "N", // Включить прокрутку к началу компонента
"AJAX_OPTION_STYLE" => "Y", // Включить подгрузку стилей
"CACHE_FILTER" => "N", // Кешировать при установленном фильтре
"CACHE_GROUPS" => "N", // Учитывать права доступа
"CACHE_TIME" => "36000000", // Время кеширования (сек.)
"CACHE_TYPE" => "A", // Тип кеширования
"CHECK_DATES" => "Y", // Показывать только активные на данный момент элементы
"COMPOSITE_FRAME_MODE" => "A", // Голосование шаблона компонента по умолчанию
"COMPOSITE_FRAME_TYPE" => "AUTO", // Содержимое компонента
"DETAIL_URL" => "", // URL страницы детального просмотра (по умолчанию - из настроек инфоблока)
"DISPLAY_BOTTOM_PAGER" => "Y", // Выводить под списком
"DISPLAY_DATE" => "Y", // Выводить дату элемента
"DISPLAY_NAME" => "Y", // Выводить название элемента
"DISPLAY_PICTURE" => "Y", // Выводить изображение для анонса
"DISPLAY_PREVIEW_TEXT" => "Y", // Выводить текст анонса
"DISPLAY_TOP_PAGER" => "N", // Выводить над списком
"FIELD_CODE" => [ // Поля
0 => "",
1 => "",
],
"FILTER_NAME" => "", // Фильтр
"HIDE_LINK_WHEN_NO_DETAIL" => "N", // Скрывать ссылку, если нет детального описания
"IBLOCK_ID" => "79", // Код информационного блока
"IBLOCK_TYPE" => "ad_game_1", // Тип информационного блока (используется только для проверки)
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y", // Включать инфоблок в цепочку навигации
"INCLUDE_SUBSECTIONS" => "Y", // Показывать элементы подразделов раздела
"MESSAGE_404" => "", // Сообщение для показа (по умолчанию из компонента)
"NEWS_COUNT" => "50", // Количество новостей на странице
"PAGER_BASE_LINK_ENABLE" => "N", // Включить обработку ссылок
"PAGER_DESC_NUMBERING" => "N", // Использовать обратную навигацию
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", // Время кеширования страниц для обратной навигации
"PAGER_SHOW_ALL" => "N", // Показывать ссылку "Все"
"PAGER_SHOW_ALWAYS" => "N", // Выводить всегда
"PAGER_TEMPLATE" => ".default", // Шаблон постраничной навигации
"PAGER_TITLE" => "Новости", // Название категорий
"PARENT_SECTION" => "", // ID раздела
"PARENT_SECTION_CODE" => "", // Код раздела
"PREVIEW_TRUNCATE_LEN" => "", // Максимальная длина анонса для вывода (только для типа текст)
"PROPERTY_CODE" => [ // Свойства
0 => "",
1 => "",
],
"SET_BROWSER_TITLE" => "Y", // Устанавливать заголовок окна браузера
"SET_LAST_MODIFIED" => "N", // Устанавливать в заголовках ответа время модификации страницы
"SET_META_DESCRIPTION" => "Y", // Устанавливать описание страницы
"SET_META_KEYWORDS" => "Y", // Устанавливать ключевые слова страницы
"SET_STATUS_404" => "N", // Устанавливать статус 404
"SET_TITLE" => "Y", // Устанавливать заголовок страницы
"SHOW_404" => "N", // Показ специальной страницы
"SORT_BY1" => "SORT", // Поле для первой сортировки новостей
"SORT_BY2" => "ID", // Поле для второй сортировки новостей
"SORT_ORDER1" => "ASC", // Направление для первой сортировки новостей
"SORT_ORDER2" => "ASC", // Направление для второй сортировки новостей
"STRICT_SECTION_CHECK" => "N", // Строгая проверка раздела для показа списка
],
false
);news.detail
<?$APPLICATION->IncludeComponent("bitrix:news.detail","",Array(
"DISPLAY_DATE" => "Y", //Выводить дату элемента
"DISPLAY_NAME" => "Y", //Выводить название элемента
"DISPLAY_PICTURE" => "Y", //Выводить детальное изображение
"DISPLAY_PREVIEW_TEXT" => "Y", //Выводить текст анонса
"USE_SHARE" => "Y", //Отображать панель соц. закладок
"SHARE_HIDE" => "N", //Не раскрывать панель соц. закладок по умолчанию
"SHARE_TEMPLATE" => "", //Указывается имя шаблона, если используется не системный шаблон
"SHARE_HANDLERS" => array("delicious"), //Указываются соц. закладки и сети, которые будут доступны на странице
"SHARE_SHORTEN_URL_LOGIN" => "", //Указывается логин для сервиса коротких ссылок bit.ly
"SHARE_SHORTEN_URL_KEY" => "", //Указывается пароль для сервиса коротких ссылок bit.ly
"AJAX_MODE" => "Y", //Включить режим AJAX
"IBLOCK_TYPE" => "news", //Тип инфо-блока
"IBLOCK_ID" => "3", //Инфо-блок
"ELEMENT_ID" => $_REQUEST["ELEMENT_ID"], //ID новости
"ELEMENT_CODE" => "", //Код новости
"CHECK_DATES" => "Y", //Показывать только активные на данный момент элементы
"FIELD_CODE" => Array("ID"), //Указываются поля, которые будут отображены на странице. Заполняется из публичной части редактора
"PROPERTY_CODE" => Array("DESCRIPTION"), //Указываются свойства, которые будут отображены на странице. Заполняется из публичной части редактора
"IBLOCK_URL" => "news.php?ID=#IBLOCK_ID#\"",//URL страницы просмотра списка элементов (по умолчанию - из настроек инфоблока)
"DETAIL_URL" => "", //URL страницы детального просмотра (по умолчанию - из настроек инфоблока)
"SET_TITLE" => "Y", //Устанавливать заголовок страницы
"SET_CANONICAL_URL" => "Y", //Устанавливать канонический URL
"SET_BROWSER_TITLE" => "Y", //Устанавливать заголовок окна браузера
"SET_STATUS_404" => "Y", //Устанавливать статус 404
"SET_META_DESCRIPTION" => "Y", //Устанавливать описание страницы
"SET_META_KEYWORDS" => "Y", //Устанавливать ключевые слова страницы
"SET_LAST_MODIFIED" => "Y", //При отмеченной опции http-ответ сервера будет содержать время последнего изменения страницы (заголовок Last-Modified)
"BROWSER_TITLE" => "-", //Среди всех свойств, определенных для данного инфоблока, выбирается то, которое будет выводиться в заголовоке окна браузера
"META_KEYWORDS" => "-", //Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержатся ключевые слова
"META_DESCRIPTION" => "-", //Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержится описание
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y", //При отмеченной опции в цепочку навигации будет добавлено имя инфоблока
"ADD_SECTIONS_CHAIN" => "Y", //При отмеченной опции при переходе по разделам ифоблока в цепочку навигации будут добавлены названия или заголовки (если заданы в настройках SEO) разделов
"ADD_ELEMENT_CHAIN" => "N", //При отмеченной опции название или заголовок (если задан в настройках SEO) элемента будет добавлен в цепочку навигации
"ACTIVE_DATE_FORMAT" => "d.m.Y", //Указывается формат показа даты. В выпадающем списке перечислены все возможные варианты показа даты, формируемые внутри компонента. Выбрав пункт (другое)->, можно сформировать свой вариант на основании php-функции date
"USE_PERMISSIONS" => "Y", //При отмеченной опции будет ограничен доступ к детальной информации элементов инфоблока. Станет активным поле GROUP_PERMISSIONS
"GROUP_PERMISSIONS" => Array("1"), //Указываются группы пользователей, имеющие доступ к детальной информации
"CACHE_TYPE" => "A", //Тип кеширования:A - Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;Y - Кешировать: для кеширования необходимо определить время кеширования;N - Не кешировать:
"CACHE_TIME" => "3600", //Время кеширования, указанное в секундах
"CACHE_GROUPS" => "Y", //При отмеченной опции будут учитываться права доступа при кешировании
"DISPLAY_TOP_PAGER" => "Y", //При отмеченной опции постраничная навигация будет выведена вверху страницы, над списком
"DISPLAY_BOTTOM_PAGER" => "Y", //При отмеченной опции постраничная навигация будет выведена внизу страницы, под списком
"PAGER_TITLE" => "Страница", //Задается название категорий, по которым происходит перемещение при детальном просмотре (например, страница, глава и др.)
"PAGER_TEMPLATE" => "", //Указывается название шаблона постраничной навигации
"PAGER_SHOW_ALL" => "Y", //При отмеченной опции будет отображена ссылка для просмотра новости целиком, без использования постраничной навигации. По умолчанию выключено
"PAGER_BASE_LINK_ENABLE" => "Y", //При отмеченной опции доступна обработка ссылок для постраничной навигации. Станут активны дополнительные поля:PAGER_BASE_LINK и PAGER_PARAMS_NAME
"PAGER_BASE_LINK" => "", //Задается адрес для построения ссылок. Если в параметре ничего не указывать, то адрес будет построен автоматически)
"PAGER_PARAMS_NAME" => "arrPager", //Задается имя переменной, в которой передается массив с переменными для построения ссылок компонентом постраничной навигации
"SHOW_404" => "Y", //При отмеченной опции будет показана специальная страница (станет доступно поле FILE_404, в противном случае станет доступно поле MESSAGE_404)
"FILE_404" => "", //Адрес страницы, которая будет отображаться при возникновении ошибки 404) в случае возникновения ошибки 404
"MESSAGE_404" => "", //Сообщение, которое будет показано в случае возникновения ошибки 404
"STRICT_SECTION_CHECK" => "Y", //При отмеченной опции будет выполняться строгая проверка принадлежности элемента к разделу. Если при просмотре элемента в адресной строке указать неверный раздел, будет выдана 404-я ошибка
"AJAX_OPTION_JUMP" => "N", //Если пользователь совершит AJAX-переход, то при установленой опции по окончании загрузки произойдет прокрутка к началу компонента
"AJAX_OPTION_STYLE" => "Y", //Если параметр принимает значение "Y", то при совершении AJAX-переходов будет происходить подгрузка и обработка списка стилей, вызванных компонентом
"AJAX_OPTION_HISTORY" => "N" //Когда пользователь выполняет AJAX-переходы, то при включенной опции можно использовать кнопки браузера "Назад" и "Вперед"
)
);?>
bitrix:sale.basket.basket.line
<? $APPLICATION->IncludeComponent("bitrix:sale.basket.basket.line", "link_basket", Array(
"HIDE_ON_BASKET_PAGES" => "Y", // Не показывать на страницах корзины и оформления заказа
"PATH_TO_AUTHORIZE" => "", // Страница авторизации
"PATH_TO_BASKET" => SITE_DIR . "personal/basket.php", // Страница корзины
"PATH_TO_ORDER" => SITE_DIR . "personal/order/make/", // Страница оформления заказа
"PATH_TO_PERSONAL" => SITE_DIR . "personal/", // Страница персонального раздела
"PATH_TO_PROFILE" => SITE_DIR . "personal/", // Страница профиля
"PATH_TO_REGISTER" => SITE_DIR . "login/", // Страница регистрации
"POSITION_FIXED" => "N", // Отображать корзину поверх шаблона
"SHOW_AUTHOR" => "N", // Добавить возможность авторизации
"SHOW_EMPTY_VALUES" => "Y", // Выводить нулевые значения в пустой корзине
"SHOW_NUM_PRODUCTS" => "Y", // Показывать количество товаров
"SHOW_PERSONAL_LINK" => "Y", // Отображать персональный раздел
"SHOW_PRODUCTS" => "N", // Показывать список товаров
"SHOW_REGISTRATION" => "Y", // Добавить возможность регистрации
"SHOW_TOTAL_PRICE" => "N", // Показывать общую сумму по товарам
),
false
); ?>bitrix:main.include
<?$APPLICATION->IncludeComponent("bitrix:main.include","",Array(
"AREA_FILE_SHOW" => "sect", //Показывать включаемую область. Значения: sect: показывать для раздела, область будет являться включаемой для всего раздела; page: показывать для страницы, область будет являться включаемой только для текущей страницы; file: показывать информацию из файла. Если компонент расположить в шаблоне дизайна сайта, то информация из файла будет выводиться на всем сайте. Установка параметра доступна только пользователю с правами edit_php
"AREA_FILE_SUFFIX" => "inc", //Для указания суффикса, который будет добавляться к именам файлов включаемых областей. Страницы с таким суффиксом будут восприниматься как включаемые области
"AREA_FILE_RECURSIVE" => "Y", //Настройка доступна при отмеченной области Показывать включаемую область (AREA_FILE_SHOW) в значение для раздела (sect). При отмеченной опции включаемые области разделов будут подключаться рекурсивно, т.е. если в папке более низкого уровня есть своя включаемая область, то она будет показана. Если же текущий раздел не имеет своей включаемой области, то рекурсивно до корня сайта будут проверяться все разделы до самого верхнего и будет выведена первая встретившаяся включаемая область
"EDIT_TEMPLATE" => "standard.php" //Доступны все шаблоны страниц, созданные в системе. Они располагаются в разделе /bitrix/templates/.default/page_templates/. В данном поле можно указать любой другой файл в системе, указав полный путь к файлу-шаблону
)
);?>
Вариант для вставки текста (можно с версткой):
<?php
$APPLICATION->IncludeComponent("bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => SITE_DIR."/include/header_title_text.php"
)
);
?>bitrix:breadcrumb
<?$APPLICATION->IncludeComponent("bitrix:breadcrumb","",[
"START_FROM" => "0", //Номер пункта, начиная с которого будет построена навигационная цепочка
"PATH" => "", //Путь, для которого будет построена навигационная цепочка (по умолчанию, текущий путь)
"SITE_ID" => "s1" //Cайт (устанавливается в случае многосайтовой версии, когда DOCUMENT_ROOT у сайтов разный)
]
);?>
Об авторе
Сергей Житников - Веб-разработчик
Занимаюсь веб-разработкой более 5 лет. Специализируюсь на создании адаптивных сайтов и веб-приложений на HTML5, CSS3 и JavaScript. Работаю с популярными CMS и фреймворками, а также уделяю большое внимание оптимизации производительности и чистоте кода.
Есть проект или идея? Буду рад помочь!
Связаться со мной