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


