Управление настройками модуля


НАЧАЛО >> Оглавление >> Сервер приложений ИРБИС 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.

Рисунок 1 - Вид поля в настройках модуля

Вид поля в настройках модуля

1. Формирование панели настроек

Панель администратора модуля строится в два этапа:

Сервер больше не собирает крупную JS-строку вручную. Он передает структурированный массив, который кодируется через json_encode. Это снижает риск ошибок экранирования и упрощает сопровождение формы настроек.

Вкладка "Настройки модуля" по-прежнему использует Ext.he2.ObjectEditorForm. При сохранении формы отправляются те же значения административных переменных, которые описаны в AdminModuleVariablesInit().

2. Кеш настроек модуля

После загрузки и изменения настроек ObjectModule использует общий Cache:

Ключ Назначение
ModuleOpts/<ModuleName> Текущее состояние административных настроек модуля.
ModuleRecordsCache/<ModuleName> SID записи модуля, найденной в I128F.

ClearCache() сбрасывает оба ключа текущего модуля. Это нужно после изменения записи модуля или структуры его настроек, чтобы следующие запросы не получили устаревшие параметры.

См. также кеш и защитные ограничения ObjectModule.