Appearance
Модуль настроек сайта. realweb.api.config
Совместимость
realweb.api v.5, v.6
Описание
Модуль позволяет хранить разнообразные настройки сайта в едином стиле без необходимости заниматься внедрением "внешнего" вида настроек.
Такими настройками могут быть api ключи к разнообразным сервисам (Google Captcha), общие настройки (Например "Не выводить цену на карточки товара" - влияет на весь каталог) и т.п.
Поддерживаемые типы настроек:
- Строка (
string) - Целое число (
integer) - Число с плавающей запятой (
float) - Строка в несколько строк (
textarea) - Да/нет (
checkbox) - Список выбора (
select) - Файл (
file) - Справка (инструкция) (
html)
Модуль поддерживает группировку настроек по группам - настройки будут группироваться по вкладкам
Также модуль поддерживает подключение своего шаблона для кастомизации интерфейса редактирования
Редактирование настроек находится на странице редактирования модуля
Пример интерфейса

Возможные доработки
- Доступ к разным настройкам по группам пользователей
Практическое использование
Настройки добавляются "на лету" на событии onConfigBuild модуля realweb.api.config
Первый аргумент - название переменой настройки
Второй - Название настройки для администратора
Настройки без групп
php
use Realweb\Api\Module\Config;
EventManager::getInstance()->addEventHandler('realweb.api.config', 'onConfigBuild', array('\Realweb\Api\Module\Config\Model\Options', 'onConfigBuild'));
class Options
{
public static function onConfigBuild()
{
Config\Model\Helper::getInstance()
->addStringItem('param1','Параметр 1')
->addIntegerItem('param2','Параметр 2')
->addFloatItem("param3",'Параметр 3'
->addTextareaItem("param4",'Параметр 4')
->addCheckboxItem("param5",'Параметр 5')
->addFileItem("param6",'Параметр 6')
->addSelectItem("param7",'Параметр 7')
->getConfigByName('param7') //Сразу можно его добыть
->addOption('option1','Option 1') // И поставить опции
->addOption('option2','Option 2')
->addOption('option3','Option 3');
}
}Настройки с группой
php
use Realweb\Api\Module\Config;
EventManager::getInstance()->addEventHandler('realweb.api.config', 'onConfigBuild', array('\Realweb\Api\Module\Config\Model\Options', 'onConfigBuild'));
class Options
{
public static function onConfigBuild()
{
Config\Model\Helper::getInstance()
->addGroup('service','Сервисы')
->getGroupByName('service') //сразу находим группу
->addIntegerItem("test","int") //Добавление в группу
->addFloatItem("test10","Число")
->addStringItem("test4","string")
->addTextareaItem("test5",'Test Textarea')
->addCheckboxItem("test7",'Test checkbox')
->addFileItem("test9",'Test file')
->addSelectItem("test8",'Test Select')
->getConfigByName('test8')
->addOption('option1','Option 1')
->addOption('option2','Option 2')
->addOption('option3','Option 3');
}
}Подключение своего шаблона
php
EventManager::getInstance()->addEventHandler("realweb.api.config", "onBeforeTemplateLoad", array('\Realweb\Api\Module\Config\Model\Options', 'load'), false, 10);
class Options
{
public static function load(\Realweb\Api\Model\Utils\Url &$obUrl)
{
$obUrl->setPath('/__admin/config/');
}
}Получение настроек
php
use Realweb\Api\Module\Config;
$strParam1 = Config\Model\Data::getInstance()->getValue('param1','default value');