1.3. Site Configs
Примечание
Добавлено в версии 5.0.0.
Функциональность «Site Configs» является упрощённым вариантом использования события OnAfterConfigRead и доступна для всех конфигурационных файлов (префиксов) в системе. Для использования данной функциональности не требуется создавать или регистрировать новые классы или hooks.
1.3.1. Расположение файлов
На данный момент все site configs располагаются в директории admin/system_presets.
Каждый из файлов, находящихся в этой директории влияет только на один, связанный с ним,
конфигурационный файл. Для того, чтобы создать
новый site config нужно знать название конфигурационного файла, на который требуется повлиять
и префикс, который в нём указан.
Например, если конфигурационный файл называется categories_config.php и в нём объявлен префикс c,
то файл, содержащий site config должен называться categories_c.php (убираем из названия
конфигурационного файла _config.php и добавляем к нему _<prefix>.php).
1.3.2. Формат файлов
В каждом site config допускается объявлять глобальные переменные из перечисленного ниже списка.
В результате обработки каждой из этих переменных будет изменена одна или более опция из конфигурационного
файла, с которым этот site config связан.
название |
описание |
|---|---|
| $remove_sections (array) | В данной переменной перечисляются названия тех секций в дереве административной консоли, которые требуется спрятать от пользователя. $remove_sections = Array (
'in-portal:configure_categories',
'in-portal:configuration_custom',
);
|
| $debug_only_sections (array) | В данной переменной перечисляются названия тех секций в дереве административной консоли,
которые требуется показывать только тогда, когда включён режим отладки ( $debug_only_sections = Array (
'in-portal:email_events',
'in-portal:phrases',
);
|
| $remove_buttons (array) | В данной переменной перечисляются названия кнопок на панели инструментов, которые нужно спрятать. Кнопки указываются отдельно для каждого требуемого title preset. $remove_buttons = Array (
'email_log_list' => Array ('view'),
'catalog' => Array ('up', 'home'),
);
|
| $hidden_fields (array) | В данной переменной перечисляются те физические поля, которые нужно
спрятать с формы редактирования, связанной с данным $hidden_fields = Array (
'EmailLogId', 'FromUser', 'AddressTo',
);
|
| $virtual_hidden_fields (array) | В данной переменной перечисляются те виртуальные поля, которые
нужно спрятать с формы редактирования, связанной с данным $virtual_hidden_fields = Array (
'ThumbPath', 'FullUrl',
);
|
| $debug_only_fields (array) | В данной переменной перечисляются те физические поля, которые нужно
показывать на форме редактирования, связанной с данным $debug_only_fields = Array (
'EmailLogId', 'FromUser', 'AddressTo',
);
|
| $debug_only_virtual_fields (array) | В данной переменной перечисляются те виртуальные поля, которые
нужно показывать на форме редактирования, связанной с данным $debug_only_virtual_fields = Array (
'ThumbPath', 'FullUrl',
);
|
| $required_fields (array) | В данной переменной перечисляются те физические поля, которые
являются обязательными к заполнению на форме редактирования, связанной с данным
$required_fields = Array (
'EmailLogId', 'Subject',
);
|
| $virtual_required_fields (array) | В данной переменной перечисляются те виртуальные поля,
которые являются обязательными к заполнению на форме редактирования, связанной
с данным $virtual_required_fields = Array (
'ThumbUrl', 'ThumbPath',
);
|
| $hide_edit_tabs (array) | В данной переменной перечисляются те вкладки, которые нужно спрятать на форме редактирования,
связанной с данным $hide_edit_tabs = Array (
'Default' => Array ('general', 'groups'),
'RegularUsers' => Array ('groups'),
);
|
| $hide_columns (array) | В данной переменной перечисляются те поля, которые нужно спрятать из набора колонок,
показываемых в списке записей связанных с данным $hide_columns = Array (
'Default' => Array ('Тimestamp', 'Еvent'),
);
|
Стандартный набор site configs доступен в архиве: core/install/site_configs.zip и обновляется при каждом релизе.