Зависимые решения: принцип установки
Пример тому - модуль Счета: он выводит на экран некие счета неких контактов. Эти контакты ассоциируются с текущим пользователем через другой модуль. Очевидно, что без наличия его в системе, работа данного модуля будет парализована.
<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>
Таким образом - если в языковых файлах определены соответствующие сообщения об ошибках - задача решена.
Пример тому - модуль Счета: он выводит на экран некие счета неких контактов. Эти контакты ассоциируются с текущим пользователем через другой модуль. Очевидно, что без наличия его в системе, работа данного модуля будет парализована.
</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>
Таким образом - если в языковых файлах определены соответствующие сообщения об ошибках - задача решена.
Ссылка скопирована в буфер обмена