Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Функциональность "Site Configs" является упрощённым вариантом использования события OnAfterConfigRead и доступна для всех конфигурационных файлов (префиксов) в системе. Для использования данной функциональности не требуется создавать или регистрировать новые классы или hooks.

 

Tip

Описанная далее функциональность доступна начиная с 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)

В данной переменной перечисляются названия тех секций в дереве административной консоли, которые требуется спрятать от пользователя.

Code Block
$remove_sections = Array (
	'in-portal:configure_categories',
	'in-portal:configuration_custom',
);
$debug_only_sections (array)

В данной переменной перечисляются названия тех секций в дереве административной консоли, которые требуется показывать только тогда, когда включён режим отладки (debug mode).

Code Block
$debug_only_sections = Array (
	'in-portal:email_events',
	'in-portal:phrases',
);
$remove_buttons (array)

В данной переменной перечисляются названия кнопок на панели инструментов, которые нужно спрятать. Кнопки указываются отдельно для каждого требуемого title preset.

Code Block
$remove_buttons = Array (
	'email_log_list' => Array ('view'),
	'catalog' => Array ('up', 'home'),
);
$hidden_fields (array)

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

Code Block
$hidden_fields = Array (
	'EmailLogId', 'FromUser', 'AddressTo',
);
$virtual_hidden_fields (array)

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

Code Block
$virtual_hidden_fields = Array (
	'ThumbPath', 'FullUrl',
);
$debug_only_fields (array)

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

Code Block
$debug_only_fields = Array (
	'EmailLogId', 'FromUser', 'AddressTo',
);
$debug_only_virtual_fields(array)

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

Code Block
$debug_only_virtual_fields = Array (
	'ThumbPath', 'FullUrl',
);
$required_fields (array)

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

Code Block
$required_fields = Array (
	'EmailLogId', 'Subject',
);
$virtual_required_fields(array)

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

Code Block
$virtual_required_fields = Array (
	'ThumbUrl', 'ThumbPath',
);
$hide_edit_tabs (array)

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

Code Block
$hide_edit_tabs = Array (
	'Default' => Array ('general', 'groups'),
	'RegularUsers' => Array ('groups'),
);
$hide_columns (array)

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

Code Block
$hide_columns = Array (
	'Default' => Array ('Тimestamp', 'Еvent'),
);

Стандартный набор site configs доступен в архиве: "core/install/site_configs.zip" и обновляется при каждом релизе.