Меню
Полная версия серии на Boosty: Перейти к серии

В этой серии расскажу как работают компоненты 1С-Битрикс "под капотом" как вносить модификации в работу штатных компонентов не вмешиваясь в их работу и не лишаясь обновлений 1С-Битрикс.

Из документации к 1С-Битрикс
Компонент: это логически завершённый код, предназначенный для извлечения информации из инфоблоков и других источников и преобразования её в HTML-код для отображения в виде фрагментов web-страниц. Состоит из собственно компонента (контроллер) и шаблона (представление). Компонент, с помощью API одного или нескольких модулей, манипулирует данными. Шаблон компонента выводит данные на страницу.

Файл component_epilog.php - инструмент для модификации данных работы компонента с включенным кешированием. Создается разработчиком самостоятельно.

Файл result_modifier.php - инструмент для модификации данных работы компонента произвольным образом. Создается разработчиком самостоятельно. Работает при выключенном кешировании.

Передать в component_epilog.php данные которые не передаются компонентом по умолчанию:

$cp = $this->__component; // объект компонента
if (is_object($cp)) {
    // в arResult component_epilog передадим все отображаемые свойства
    $cp->SetResultCacheKeys(array(
            'DISPLAY_PROPERTIES'
        )
    );
}

Чеклист:

  • Как работают компоненты.
  • Что такое component_epilog.php и result_modifier.php.
  • Добавление своей логики в работу компонента.
Гость июля 11, 2024 4:14 pm
Михаил, подскажите пожалуйста, бывают ли такие ситуации в которых все равно придется снимать компонент с поддержки или вносить изменения в ядро битрикса?  
Михаил Базаров июля 12, 2024 10:28 am
Когда иначе совсем ни как, а функционал нужен.
Снятие компонента, туда сюда, бывает оправданным.

А вот модификации ядра реально - если иначе вообще ни как не решить задачу. За все время работы у меня такой ситуации не было ни разу.

Блог-note: заметки разработчика

Адаптивное гамбургер меню для битрикс

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

Оптимизация jpeg и png картинок на cron, с помощью jpegoptim и optipng

Задача: на сайт каждый день проходит выгрузка из 1С с обновлением картинок. Нужно оптимизмровать эти картинки с помощью...

Установить остатки товара на складе из доступных остатков.

Задача, заполнить остатки товаров, в 1С-Битрикс, из параметра "Доступное количество".

Установка счетчика Яндекс.Метрики на сайт с Content Security Policy (CSP)

Если на вашем сайте не отображаются данные о кликах и скроллинге в Яндекс.Метрике, вероятнее всего, это связано с настро...

Правильное подключение стилей и скриптов в Битрикс

Есть несколько способов подключения файлов стилей и скриптов, при верстке шаблонов в системе управления 1С-Битрикс. Если...

Получить цены товаров с помощью D7-ORM в 1С-Битрикс

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

Дополнительные опции/услуги, добавляемые в корзину, в карточке товаров

Задача: в детальной карточке товара сделать возможность добавления услуги или опции, при добавлении товара в корзину.

Создать pdf файл из элемента инфоблока, дать скачать пользователю, поддерживать в актуальном состоянии или отправить на e-mail.

Задача: при каждом посещении статьи, на сайте, нужно создавать pdf файл с ее содержимым и записывать в свойство инфоблок...

Увеличение диска на готовой виртуальной машине Битрикс

Как всем известно, на официальном сайте 1С-битрикс можно скачать готовую виртуальную машину максимально сконфигурированн...