Зависимые решения: принцип установки

Зависимые решения: принцип установки

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

<p>
     Пример тому - модуль Счета: он выводит на экран некие счета неких контактов. Эти контакты ассоциируются с текущим пользователем через другой модуль. Очевидно, что без наличия его в системе, работа данного модуля будет парализована.
</p>
<p>
     В таком случае, у пользователя возникает естественное желание уже в процессе установки модуля знать, чего ему не хватает для полноценной работы, а в идеале - автоматически подхватывать и устанавливать все дополнительные инструменты.
</p>
<p>
     Решением данной проблемы будет следующее:
</p>
<p>
     в начало метода
</p>
<div class="code">
    <table class="blogcode">
    <tbody>
    <tr>
        <td>
             <code>InstallDB()
            </code>
        </td>
    </tr>
    </tbody>
    </table>
</div>
<p>
     который находится в папке модуля в файле <b>/install/index.php</b>
</p>
<p>
     добавляем следующий код:
</p>
<div class="code">
    <table class="blogcode">
    <tbody>
    <tr>
        <td>
             <code>                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;             }
            </code>
        </td>
    </tr>
    </tbody>
    </table>
</div>
где <b>parent.module</b> - связанный модуль, без которого не возможна работа текущего. Текущий модуль здесь обозначен как <b>current.module</b>
<p>
<b>error_mess.php</b> - файл, содержащий сообщение об ошибке и отсыл к установке связанного модуля. Он должен располагаться в той же папке, что и установочный файл index.php, а методу $APPLICATION->IncludeAdminFile нужно передать абсолютный путь к нему.
</p>
Таким образом - если в языковых файлах определены соответствующие сообщения об ошибках - задача решена.

Похожие записи в блоге

Все статьи