НАЧАЛО >> Оглавление >> Сервер приложений ИРБИС 64/128 >> Ядро системы >> ObjectModule >> Управление настройками модуля📄 Скачать в DOCX
Описание параметров модуля и настроек для их редактирования через АРМ Администратор выполняется в функции AdminModuleVariablesInit().
Задача функции - заполнить массив $this->m->_variableslist описаниями параметров. Типы параметров описаны в модуле he2. Описанные переменные становятся доступны для чтения внутри модуля так же, как обычные переменные класса.
Пример описания переменной educationlevel:
array(
'Name' => 'educationlevel',
'Title' => 'Образование',
'Value' => '',
'Field' => 20,
'occ' => 1,
'SubField' => '*',
'FieldEditor' => 'SelectMnu',
'Mnu' => '20.mnu',
'irbDb' => 'IBIS',
)
Значение переменной хранится в записи модуля типа MODULE в поле 20. Во время исполнения его можно прочитать так:
$eduLevel = UseModule('SomeModule')->educationlevel;
При открытии страницы редактирования параметров модуля переменная будет доступна в виде выбора из выпадающего меню, исходными данными для которого служит файл 20.mnu.

Вид поля в настройках модуля
Панель администратора модуля строится в два этапа:
ObjectModule->GetModuleAdminPanel() собирает данные: SID записи модуля, доступность вкладок, элементы формы настроек, параметры списка объектов и профилей;ObjectModuleAdminView превращает эти данные в JSON-конфигурацию для клиента;modules/Admin/JS/ModuleAdminPanel.js создает ExtJS-компонент Irbis.Admin.ModuleSettingsPanel и регистрирует xtype module-settings-panel.Сервер больше не собирает крупную JS-строку вручную. Он передает структурированный массив, который кодируется через json_encode. Это снижает риск ошибок экранирования и упрощает сопровождение формы настроек.
Вкладка "Настройки модуля" по-прежнему использует Ext.he2.ObjectEditorForm. При сохранении формы отправляются те же значения административных переменных, которые описаны в AdminModuleVariablesInit().
После загрузки и изменения настроек ObjectModule использует общий Cache:
| Ключ | Назначение |
|---|---|
ModuleOpts/<ModuleName> |
Текущее состояние административных настроек модуля. |
ModuleRecordsCache/<ModuleName> |
SID записи модуля, найденной в I128F. |
ClearCache() сбрасывает оба ключа текущего модуля. Это нужно после изменения записи модуля или структуры его настроек, чтобы следующие запросы не получили устаревшие параметры.
См. также кеш и защитные ограничения ObjectModule.