In-Portal Developers Guide

This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.

K4:Site Configs

From In-Portal Developers Guide

Jump to: navigation, search
Настройка системы Настройка системы
Статьи в этой категории

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

Image:Tipbox Icon.gif Описанная далее функциональность доступна начиная с 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',
);
$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" и обновляется при каждом релизе.