slider-arr arrow-right fb vk key
Created by potrace 1.13, written by Peter Selinger 2001-2015

Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Created by potrace 1.13, written by Peter Selinger 2001-2015

cooperation Начать сотрудничество

Выберите файл
slider-arr arrow-right fb vk key
+7 (8452) 46-70-10 65-90-63
Меню

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

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

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

Введение

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

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

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

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

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

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

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

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

© 2004 - 2017   ООО «Инфо-Эксперт». ИНН 6449058776.

Наш адрес: г. Саратов, ул. Астраханская, 88 оф. 20.

Тел.: (8452) 46-70-10

Все права защищены. Перепубликация материалов сайта без официального разрешения запрещена.

Cоглашение об использовании сайта.  Данный интернет-сайт носит исключительно информационный характер и ни при каких условиях не является публичной офертой, определяемой положениями Статьи 437 (2) Гражданского кодекса РФ.