Часть 1. Большая книга рецептов Битрикс - инфоблоки запеченные под майонезом

Зачем я везде расписывался?! Сжечь! Сжечь!

Бургомистр, "Убить Дракона"

Введение

Эта статья предназначена для тех разработчиков сайтов, кто уже работает с системой «Битрикс :: Управление сайтом» (в дальнейшем, БУС). Огромный набор функциональных возможностей системы зачастую покрывает 95% всех задач, которые возникают у заказчика обычного корпоративного сайта. Эти вопросы решаются написанием специфических шаблонов для инфоблоков, меню или строки навигации и, в целом, не требуют серьезного программирования на PHP. Оставшиеся 5% задач состоят из задач автоматизации той или иной деятельности, которую заказчик хочет видеть на своем сайте. Очевидно, что компании, имеющие в штате PHP-программистов, так или иначе, справляются с задачей, однако само наличие БУС создает у разработчиков естественное желание написать автоматизацию «интегрированном с Битрикс виде». Под интеграцией в таких случаях, как правило, понимается требование, чтобы «самописная» часть «смотрелась» частью общей системы, не мешала получению автоматических обновлений через SiteUpdate, настраивалась через раздел Администрирования и так далее. Иными словами, хочется, чтобы «доработки» были сделаны в виде полноценного модуля БУС.

В нашей статье мы покажем, каким образом описывать модуль, чтобы система работала с ним, как с «родным». Расскажем, как разработать класс модуля и управлять опциями при помощи функций ядра системы. Поясним, как правильно располагать файлы с текстовыми константами, описывать компоненты для визуального HTML-редактора страницы и генерировать почтовые нотификации на определенные события.

Вы можете загрузать полный текст модуля и обращаться к нему по мере необходимости.

Что мы будем делать?

Прежде, чем приступить к особенностям реализации модуля, надо решить, а что мы, собственно, хотим получить в результате. В качестве примера приближенного к реальности мы решили попробовать создать простую гостевую книгу. Она должна быть доступна в виде компонентов в HTML-редакторе, позволять регулировать права доступа к записям книги при помощи специальных ролей (как это сделано в модуле Поддержка, например) и генерировать почтовые нотификации на такое основное событие как создание записи в гостевой книге. Данная задача является простой, но в тоже время позволит нам затронуть практически все вопросы создания собственного модуля в БУС.

Долой SQL, даешь ООП!

Если бы мы решили делать гостевую книгу с нуля, то очевидным решением было бы создание пары таблиц, которые позволили бы описать связи между некими сущностями «Гостевая книга» и «Запись в гостевую книгу». Мы бы вооружились MySQL (или Oracle, раз уж БУС нам это позволяет) и начали описывать таблицы, придумывать запросы и делать все то, чем обычно занимаются разработчики сайтов «на коленках». Но мы-то уже не они, не правда ли? У нас уже есть прекрасная основа для моделирования очень широкого спектра данных, с которыми потом будет работать сайт. Чудо называется - «Информационные блоки», и этот модуль, как мы знаем, доступен даже в самой минимальной конфигурации БУС: редакции Старт. Давайте воспользуемся этим прекрасным механизмом, тем более что для него существует масса готового кода в разделе «Администрирование», который мы сможем позаимствовать для своих целей. Помимо всего прочего, мы сможем работать на уровне Битрикс API, что уже само по себе приятно.

спасибо за просмотр!

Created by potrace 1.13, written by Peter Selinger 2001-2015

Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов: