Часть 3. Регистрация модуля в системе
Опишем файл «/ix_guestbook/include.php»:
<?
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/ix_guestbook/classes/general/ix_guestbook.php");
?>
Это описание позволит в дальнейшем автоматически использовать собственный класс с какой-то функциональностью в программном коде, если в публичной части сайта написать что-то вроде
if (CModule::IncludeModule(“ix_guestbook”)) …
Мелочь, а приятно. На реальном содержимом ix_guestbook.php пока подробно останавливаться не будем. Пусть там будет некая пустышка, необходимая лишь в качестве заготовки:
<?
class CIX_Guestbook {
function Dummy()
{
return;
}
}
?>
Теперь переходим к файлу «/ix_guestbook/install/index.php». Это основной файл для регистрации собственного
<?
global $MESS;
$strPath2Lang = str_replace("\\", "/", __FILE__);
$strPath2Lang = substr($strPath2Lang, 0, strlen($strPath2Lang)-strlen("/install/index.php"));
include(GetLangFileName($strPath2Lang."/lang/", "/install/index.php"));
include($strPath2Lang."/install/version.php");
Class ix_guestbook extends CModule
{
var $MODULE_ID = "ix_guestbook";
var $MODULE_VERSION;
var $MODULE_VERSION_DATE;
var $MODULE_NAME;
var $MODULE_DESCRIPTION;
function ix_guestbook()
{
$this->MODULE_VERSION = IX_GB_VERSION;
$this->MODULE_VERSION_DATE = IX_GB_VERSION_DATE;
$this->MODULE_NAME = GetMessage("IX_GB_MODULE_NAME");
$this->MODULE_DESCRIPTION = GetMessage("IX_GB_MODULE_DESC");
}
function DoInstall()
{
RegisterModule("ix_guestbook");
}
function DoUninstall()
{
UnRegisterModule("ix_guestbook");
}
}
?>
Код подключения текстовых констант целиком заимствован из существующих модулей БУС, и мы бы рекомендовали использовать его и для ваших модулей. Сами константы необходимо положить в каталоги, привязанные к конкретным языкам системы по следующему шаблону:
«/[module_name]/lang/[language]/install/index.php»
То есть, для русских констант путь к файлу будет таким:
«/ix_guestbook/lang/ru/install/index.php».
Содержимое файла включает в себя всего пять строковых констант:
<?
$MESS ['IX_GB_MODULE_NAME'] = "Гостевые книги";
$MESS ['IX_GB_MODULE_DESC'] = "Модуль для создания гостевых книг";
$MESS ['IX_GB_DENIED'] = "Доступ закрыт";
$MESS ['IX_GB_ADD_RECORD'] = "Посетитель";
$MESS ['IX_GB_MODERATOR'] = "Модератор";
?>
Обратите внимание на «/ix_guestbook/install/version.php»:
<?
define("IX_GB_VERSION","1.0.0");
define("IX_GB_VERSION_DATE","2005-02-25 16:00:00");
?>
Этот файл подключается строчкой include($strPath2Lang."/install/version.php") и позволяет нам удобно менять номер версии модуля в случае дальнейших обновлений.
В файле «/ix_guestbook/install/index.php» описывается один единственный класс, название которого должно совпадать с названием модуля. Этот класс обязан иметь конструктор (в нашем случае, function ix_guestbook()), в котором присваиваются такие основные параметры модуля, как его название, описание, номер и дата версии. Помимо этого класс модуля обязан иметь два метода: DoInstall и DoUninstall. Полагаем, что их смысл очевиден – они подключают и отключают модуль в ядре БУС.
На этом приготовления модуля, в общем-то, заканчиваются. Если мы зайдем в список доступных модулей в разделе «Администрирование», то обнаружим, что нам уже предлагают установить наш модуль в системе.
Рис. 2. Список модулей системы.