Набор пользовательских компонентов 1С-Битрикс в пространстве имён ialex.
Репозиторий рассчитан на размещение в каталоге компонентов сайта, чтобы итоговая структура была вида local/components/ialex/... или bitrix/components/ialex/....
ialex:complex.additional— комплексный компонент для инфоблока с поддержкой страниц списка, раздела, детальной страницы, поиска и RSS.ialex:blocks.additional— подключение произвольных include-файлов сайта по списку путей.ialex:check.recipients.additional— служебный компонент для поиска получателей в почтовых шаблонах Bitrix.ialex:widget.tg— виджет-ссылка на Telegram с настраиваемыми изображением, текстами и ссылкой.
ialex/
├── blocks.additional/
├── check.recipients.additional/
├── complex.additional/
└── widget.tg/
Каждый компонент содержит стандартную для Bitrix структуру: .description.php, .parameters.php, class.php или component.php, каталог lang/ и шаблоны в templates/.
- установленный
1С-Битрикс; - модуль
iblockдляialex:complex.additional; - доступ к почтовым шаблонам и сайтам Bitrix для
ialex:check.recipients.additional; - корректные include-файлы в корне сайта для
ialex:blocks.additional; - непустой параметр
LINKдля отображенияialex:widget.tg.
- Скопируйте репозиторий в каталог компонентов сайта.
- Убедитесь, что компоненты доступны по пути
local/components/ialex/*илиbitrix/components/ialex/*. - Если репозиторий клонируется отдельной папкой
components, перенесите из него каталогialexв каталог компонентов проекта. - После обновления кода очистите кеш компонентов Bitrix.
Компонент работает как обёртка над стандартными bitrix:catalog.section.list, bitrix:news.list, bitrix:news.detail и bitrix:search.page. Поддерживает SEF_MODE, разрешает разделы по SECTION_ID, SECTION_CODE, SECTION_CODE_PATH, а элементы по ELEMENT_ID и ELEMENT_CODE.
<?$APPLICATION->IncludeComponent(
"ialex:complex.additional",
".default",
[
"IBLOCK_TYPE" => "content",
"IBLOCK_ID" => 1,
"NEWS_COUNT" => 20,
"SEF_MODE" => "Y",
"SEF_FOLDER" => "/news/",
"SEF_URL_TEMPLATES" => [
"news" => "",
"section" => "#SECTION_CODE_PATH#/",
"detail" => "#SECTION_CODE_PATH#/#ELEMENT_CODE#/",
"search" => "search/",
"rss" => "rss/",
"rss_section" => "#SECTION_CODE_PATH#/rss/",
],
]
);?>Компонент принимает массив PROPERTY_CODE, где каждый элемент — путь к include-файлу относительно корня сайта. Если файл существует, он подключается через $APPLICATION->IncludeFile().
<?$APPLICATION->IncludeComponent(
"ialex:blocks.additional",
"blocks",
[
"PROPERTY_CODE" => [
"include/main_block_1.php",
"include/mission_1.php",
],
]
);?>Служебный компонент для администраторов. Показывает форму поиска по сайтам, идентификаторам почтовых шаблонов и полям EMAIL_FROM, EMAIL_TO, CC, BCC. В шаблоне результат отображается только для администратора.
<?$APPLICATION->IncludeComponent(
"ialex:check.recipients.additional",
".default",
[]
);?>Рендерит всплывающий блок с картинкой, заголовком, текстом и кнопкой перехода. Если LINK пустой, виджет не выводится.
<?$APPLICATION->IncludeComponent(
"ialex:widget.tg",
".default",
[
"IMG_SRC" => "/images/tg.png",
"TITLE" => "Подпишись на наш Telegram",
"TEXT" => "Информация о новинках и актуальные акции",
"TEXT_LINK" => "Подписаться",
"LINK" => "https://t.me/example",
]
);?>ialex:blocks.additionalне фильтрует пути к include-файлам, поэтому не стоит передавать в него пользовательский ввод.ialex:check.recipients.additionalиспользует ORM Bitrix и таблицы почтовых шаблоновEventMessageTable.ialex:complex.additionalв шаблоне детальной страницы дополнительно подключаетialex:blocks.additional.- Локализация компонентов хранится в
lang/, а настраиваемые параметры описаны в.parameters.phpи шаблонных.parameters.php.
- Основная логика новых компонентов вынесена в
class.php. - Шаблоны компонентов лежат в
templates/. - Перед деплоем имеет смысл проверять работоспособность компонентов на стенде Bitrix и очищать кеш после изменений маршрутизации или параметров.