1.3. Site Configs

Data Source Confluence

Примечание

Добавлено в версии 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 mode).

$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)

В данной переменной перечисляются те физические поля, которые нужно спрятать с формы редактирования, связанной с данным site config.

$hidden_fields = Array (
    'EmailLogId', 'FromUser', 'AddressTo',
);
$virtual_hidden_fields (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 и обновляется при каждом релизе.