Просмотров: 35020
Дата последнего изменения: 27.05.2021
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Недоступно в лицензиях:
Ограничений нет
| Цитатник веб-разработчиков.
Роман Петров: Методы, которые были актуальны 2 года назад - сейчас могут быть неактуальны из-за появления готовых компонентов, делающих то же самое |
Фактически, на сегодняшний момент свой компонент нужно писать лишь тогда, когда нужен абсолютно новый функционал для сайта. Если учесть тот факт, что состав стандартных компонентов довольно большой, то в большинстве случаев написание компонентов и не требуется, достаточно расширить функционал уже имеющихся.
Тем не менее, приходит время, когда разработчик должен научиться создавать свои компоненты.
Типовая последовательность действий
Порядок создания собственно компонента
Выделить необходимый php-код в отдельный файл для того, чтобы использовать его потом в виде вызываемого файла несложно. Но компонент еще нужно подключить в систему с помощью файла описания, который опознается ядром Bitrix Framework, в результате чего пользователь видит в визуальном редакторе иконку с названием компонента и может настраивать его свойства.
Напомним, что компонент – это выделенный в отдельный файл php-код с законченной функциональностью, файл регистрации компонента в системе и описания его параметров, а также файлы локализации.
- Регистрация компонента
- Выделение необходимого php-кода в отдельный файл.
- Создание файла описания .description.php
- Размещение файлов в папке в собственном пространстве имен.
- Задание параметров в коде компонента
- Локализация
- Подготовка файлов с текстовыми константами для компонента и файла регистрации:
/lang/ru/<имя_компонента>/component.php
и /lang/ru/<имя_компонента>/.description.php
- Внесение изменения в код обоих файлов компонента для использования этих констант (подключение файла локализации делается при помощи функции IncludeTemplateLangFile).
Важно! Все ключи в $MESS
, содержащие название, описание и параметры компонента, а также идентификаторы веток компонента в дереве компонентов визуального редактора должны быть уникальными в рамках всего продукта.
При создании компонента для Marketplace нужно создавать мастер установки (аналогично модулю).
Совет от М. Месилова:
Если на сайте используются компоненты собственной разработки и требуется их большое обновление, то рекомендуется использовать в префиксе номер версии: news.list.v2 так вы не поломаете старые компоненты по всему сайту и у вас будет возможность сделать новый компонент с потерей обратной совместимости.
Созданные для веб-проекта собственные компоненты могут использоваться как основа для новых компонентов, а также, по причине модульной структуры и "отчуждаемости от проекта" - эффективно использоваться в других веб-решениях.
Примечание: При создании компонента рекомендуется использовать:
-
SEF режим
В комплексные компоненты встроена функция генерации ЧПУ. У этих компонентов всегда есть входной параметр SEF_MODE, который может принимать значения Y и N. Если параметр SEF_MODE равен N, то компонент работает с физическими ссылками и все параметры передает через стандартные параметры HTTP запроса.
Подробнее ...
а в шаблоне компонента:
-
JS-класс
Иногда при разработке компонента его шаблон необходимо наделить js-функциональностью, событиями и прочим. Выглядеть это может примерно так:
Подробнее ...
,
-
буферизацию
Усовершенствованные методы буферизации в шаблоне позволяют более не использовать CBitrixComponentTemplate::EndViewTarget() ввиду того, что конец шаблона вызывает завершение буферизации автоматически.
Подробнее ...
.