Зависимые решения: принцип установки
 
Зависимые решения: принцип установки
21.08.2014 07:36:22
Разработка
452
Пример тому - модуль Счета: он выводит на экран некие счета неких контактов. Эти контакты ассоциируются с текущим пользователем через другой модуль. Очевидно, что без наличия его в системе, работа данного модуля будет парализована.

Пример тому - модуль Счета: он выводит на экран некие счета неких контактов. Эти контакты ассоциируются с текущим пользователем через другой модуль. Очевидно, что без наличия его в системе, работа данного модуля будет парализована.

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

Решением данной проблемы будет следующее:

в начало метода

InstallDB()

который находится в папке модуля в файле /install/index.php

добавляем следующий код:

if(!IsModuleInstalled("mcart.crmticketassociation"))             {                          $APPLICATION->IncludeAdminFile(GetMessage("CC_1CACTGENERATE_MODULE_NOT_INSTALLED_ERROR"),                 $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/current.module/install/error_mess.php");             return false;             }
где parent.module - связанный модуль, без которого не возможна работа текущего. Текущий модуль здесь обозначен как current.module

error_mess.php - файл, содержащий сообщение об ошибке и отсыл к установке связанного модуля. Он должен располагаться в той же папке, что и установочный файл index.php, а методу $APPLICATION->IncludeAdminFile нужно передать абсолютный путь к нему.

Таким образом - если в языковых файлах определены соответствующие сообщения об ошибках - задача решена.
Загрузка...