Разработка модулей для Битрикс. Структура файлов

В предыдущей статье мы говорили о разработке компонентов под Битрикс. Теперь перейдём к следующему этапу - разработке модулей. Чем отличается компонент от модуля?

Модуль - это набор каких-либо сущностей. Компонент - это то, что этими сущностями управляет. Посмотрим на примере модуля "Инфоблоки". Модуль "Инфоблоки" представляет собой совокупность таблиц в БД и php-классов, которые могут проводить какие-либо операции с данными из таблиц (например, CIBlockElement::GetList() или CIBlockElement::GetByID ()). Компонентом является уже, например, "Новость детально", который имеет собственные настройки (показывать дату, картинку и т.д. и т.п.) и работает с методами php-классов модуля.

Если проводить аналогию с MVC (модель - представление - контроллер), то модуль представляет собой модель (БД и методы, содержащие запросы к ней), компонент - контроллер, а шаблон компонента - представление.

Посмотрим, что представляет собой структура файлов модуля. Все файлы должны быть расположены в каталоге /bitrix/modules/NEW_MODULE/, где NEW_MODULE - ID нашего нового модуля (символьный код).

  • - admin
  • - classes
  • - lang
  • - install
  • include.php
  • default_option.php
  • options.php
  • prolog.php

В папке admin находятся скрипты, которые будут работать в административной части сайта. Но напрямую к скрипту обратиться нельзя, сначала нужно подключить его в специальном файле. Например, мы создали файл /bitrix/modules/NEW_MODULE/admin/somescript.php. далее неоходимо создать вот такой файл /bitrix/admin/somescript.php. В этом файле должно быть просто подключение нашего админского скрипта:

<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/NEW_MODULE/admin/somescript.php");?>

Теперь вы можете наблюдать результат работы скрипта по адресу http://your_site/bitrix/admin/somescript.php

В папке classes лежат файлы с классами модуля. Причем классы, которые работают c mysql, должны лежать в папке classes/mysql, с Oracle - в папке classes/oracle, а классы, не привязанные к конкретной СУБД, - в папке classes/general.

В папке lang, как и повсюду в системе, располагаются языковые файлы. Языковые файлы должны лежать в соответствующих папках, например, lang/ru или lang/en.

В папке install содержится файл с описанием модуля (index.php), а также инсталлятор и деинсталлятор модуля (им будет посвящен следующий пост).

С папками разобрались, остались файлы. Options.php - файл, описывающий настройки модуля. Рекомендую посмотреть данный файл в модуле Инфоблоков. default_option.php - в этом файле лежит массив, описывающий настройки модуля по умолчанию. В файле prolog.php нужно определить константы, задающие id модуля и html-код его иконки. В файле include.php необходимо вручную прописать все файлы, которые будут использоваться при работе модуля (и файлы с классами тоже). Например, для нашего модуля мы должны написать следующее:

<?require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/NEW_MODULE/classes/general/someclass.php');?>

Теперь, если мы подключим наш модуль в каком-то компоненте, используя метод CModule::IncludeModule("NEW_MODULE")), то файл с классом будет подключен и его методы будут доступны. Следовательно, созданным модулем уже можно пользоваться.

В следующих постах мы рассмотрим создание инсталлятора и деинсталлятора для модуля, создание пунктов административного меню.

Дата: 12 июля 2010
Теги: модули
Добавить в закладки:

Комментарии (2)

valek-i, 21 Апреля 2011

Здравствуйте, Александр. Каким образом с вами можно связаться на прямую?
Здравствуйте, Александр. Каким образом с вами можно связаться на прямую?

keaton, 20 Июня 2011

Александр, расскажите пожалуйста, как использовать wyswyg редактор битрикса в своих модулях.
Александр, расскажите пожалуйста, как использовать wyswyg редактор битрикса в своих модулях.


Администратор запретил оставлять комментарии