на главную страницу этого блога
на главную страницу другого блога
 

Регистрация модуля в системе

Опишем файл «/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. Список модулей системы.