Зависимые решения: принцип установки
Пример тому - модуль Счета: он выводит на экран некие счета неких контактов. Эти контакты ассоциируются с текущим пользователем через другой модуль. Очевидно, что без наличия его в системе, работа данного модуля будет парализована.
Пример тому - модуль Счета: он выводит на экран некие счета неких контактов. Эти контакты ассоциируются с текущим пользователем через другой модуль. Очевидно, что без наличия его в системе, работа данного модуля будет парализована.
В таком случае, у пользователя возникает естественное желание уже в процессе установки модуля знать, чего ему не хватает для полноценной работы, а в идеале - автоматически подхватывать и устанавливать все дополнительные инструменты.
Решением данной проблемы будет следующее:
в начало метода
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; }
|
error_mess.php - файл, содержащий сообщение об ошибке и отсыл к установке связанного модуля. Он должен располагаться в той же папке, что и установочный файл index.php, а методу $APPLICATION->IncludeAdminFile нужно передать абсолютный путь к нему.
Таким образом - если в языковых файлах определены соответствующие сообщения об ошибках - задача решена.