+7 495 008 8452 пн.-пт. 10:00 – 17:00

Компоненты «Битрикс»: введение

Что такое компоненты «Битрикс»?

Информация в CMS «Битрикс» организована в виде информационных блоков. Эти «кирпичики» дают администратору доступ к данным из базы в структурированном, универсальном и гибко настраиваемом формате. А для преобразования данных в пользовательский формат предназначены компоненты. Они включают исполняемый код, так называемые контроллеры, и шаблоны оформления страниц.

Какие задачи выполняют компоненты «Битрикс»?

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

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

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

Компоненты «Битрикс» на странице

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

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

Простые (одностраничные) компоненты

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

Комплексные (многостраничные) компоненты

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

Как работают комплексные компоненты?

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

Затем шаблон комплексного компонента подключает простые компоненты, при этом настраивает их свойства автоматически.

Далее простые компоненты обращаются к ядру CMS, получают данные, форматируют в соответствии с собственными шаблонами, в том числе и активные элементы страницы. Такие, как кнопки, формы, ссылки, меню и так далее.

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

Для чего служат комплексные компоненты?

Исключают необходимость создания множества страниц для вывода одностраничных компонентов.

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

Кастомизация (доработка) кода комплексного компонента изменяет вывод всех отображаемых им простых компонентов.

Как подключаются компоненты «Битрикс»?

По правилам работы CMS «Битрикс», файлы компонентов должны храниться по адресу:

/bitrix/components/название вашего сайта

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

<?$APPLICATION->IncludeComponent(
componentName, // имя компонента
componentTemplate, // шаблон компонента, пустая строка если шаблон по умолчанию
arParams=array(), // параметры
parentComponent=null,
arFunctionParams=array()
);?>

Как устроены компоненты «Битрикс»?

Компонент состоит из обязательного набора папок и файлов:

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

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

Папка шаблонов templates содержит стилевые файлы, определяющие формат вывода компонента.

Исполняемый файл основного кода component.php. Без этого файла компонент не будет работать.

Исполняемый файл для редактора description.php. Без него компонент работать будет, но в редакторе работать с ним станет невозможно. Он содержит название компонента, его описание и место в файловой структуре.

Исполняемый файл параметров компонента .parameters.php.

Файл классов .class.php

Часто встречающиеся при работе с компонентами ошибки

«Код вызова компонента не удалось обнаружить»

Нередко встречается при редактировании в визуальном редакторе параметров компонента.

Причины бывают следующие:

1. Код вызова компонента не заключен в <? ?>

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

Записать так неправильно:

<?
php-код

компонент

php-код
?>

Записать так правильно:

<?
php-код
?>

<?
компонент
?>

<?
php-код
?>

2. HTML-код содержит ошибки

Тут, как вы понимаете, универсального рецепта нет. Проверьте все фрагменты HTML-кода и устраните ошибки.

3. Разнобой кодировок

Замечание: В текущих версиях битиркса этот раздел не актуален.
Например, сайт в целом на кодировке UTF-8, а конкретная страница на windows-1251. Эта проблема устраняется через файл .htaccess

Если сайт в кодировке UTF-8:, надо добавить в него строки:

php_value mbstring.func_overload 2
php_value mbstring.internal_encoding utf-8

И напротив, если сайт в кодировке windows-1251, то строки надо добавить такие:

php_value mbstring.func_overload 0
php_value mbstring.internal_encoding cp1251

4. Взаимное несоответствие прав

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

Кэширование компонентов

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

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

Чтобы полностью очистить кэш при обновлении, надо действовать так:

1. Сбросить кэш конкретной страницы, нажав кнопку на панели управления

2. Перейдите в панель управления конкретного компонента и очистите кэш нажатием кнопки

3. Настройте режим сброса кэша через определенный промежуток времени.

4. Наконец, в настройках нужных компонентов можно установить режим работы «без кеширования»