aConfig - Общие настройки для плагинов

Что это?

Всем нам (пользователям и разработчикам) известно, что почти все плагины настраиваются через файл config.php.
В этом способе меня всегда напрягал тот факт, что для того, чтобы настроить несколько плагинов надо перелопатить файлы config.php этих плагинов. Т.е. в livestreet не хватает единого интерфейса настройки.
А учитывая тот факт, что я немного лентяй, то моя лень породила новый плагин — aConfig.
Плагин представляет собой API для создания настроек вашего плагина, и единый интерфейс для управления настройками.
Выглядит это так:


Как это работает?

Каждый плагин при активации создает свой сет настроек со своими переменными. А в процессе работы может получать, устанавливать, добавлять новые переменные в сет.
Сет — это набор переменных. Сделано для удобства.
Все добавленные сеты (с перменными) появляются на странице настроек. Каждому сету надо назначать системное имя и удобочитаемое имя. У переменных так же есть системное и удобочитаемое имя, но к тому же у переменных есть еще и Допустимые значения (чтобы пользователи знали, что можно сделать с этой настройкой), а так же значение по умолчанию.

Как пользоваться?

Сначала необходимо скачать и установить плагин aConfig (ссылка в конце топика).
Желательно добавить своему будущему плагину зависимость от плагина aConfig.
При активации плагина создать новый сет:

/*Создаем группу настроек*/
AC::NewSet('demo_settings','Настройки демо плагина',array(
	'demo_show_lorem'=>array( //элемент описывает новую переменную demo_show_lorem
         	'title'=>'Показывать текст Lorem Ipsum',//Переведенное название переменной, если не указано будет использовано системное. В данном случае demo_show_lorem
		'allowed'=>array(0,1),//Допустимые значения. Показываются на страницы настроек для того, чтобы пользователи знали, что вводить.
		'default'=>1,//Значение переменной по-умолчанию
	),
));

А при работе плагина пользоваться функциями:
AC::NewSet() — создание нового набора настроек. Обычно вызывается при активации плагина.
AC::GetVar() — получить объект переменной (объект != значению).
AC::GetVarValue() — получить значение переменной.
AC::SetVar() — установить значение переменной. Переменная должна существовать каком-либо сете.
AC::AddVar() — Добавить переменную. Добавит переменную в сет, если указано, иначе создаст сет set_VARNAME.
AC::DeleteSet() — Удаляет сет. Обычно вызывается при деактивации плагина.

Где взять?

Скачать плагин aConfig.
Скачать плагин демо настроек.

Лицензия

Бесплатно для некоммерческого использования.
Если вы собираетесь использовать плагин для разработки платных плагинов, вы должны перечислить 1USD автору плагина AConfig.
Оплата принимается на:
Яндекс.Деньги 41001406176319
На сайте livestreetcms.ru/profile/Doka/donate/

Альтернативный способ оплаты коммерческого использования:
Поставить на своем сайте ссылку на сайт автора — skobka.com

6 комментариев

avatar
интересные возможности.

что скажут разработчики?
avatar
А что делать с многомерными массивами в конфигах?
Пример — настройки для изображений:


$config['module']['topic']['photoset']['size'] = array( // список размеров превью, которые необходимо делать при загрузке фото
	array(
		'w' => 1000,
		'h' => null,
		'crop' => false,
	),
	array(
		'w' => 545,
		'h' => null,
		'crop' => false,
	),	
);


Думаю, просто в существующий класс конфига нужно добавить методы, позволяющие визуализировать его в виде формы, а затем сохранить измененные параметры (в БД или файл).
avatar
Попробую добавить подхват таких масивов. Главное чтоб не получилось так, что создать настройки через этот плагин станет очень нудным — в таком случае разработчики могут просто использовать старые конфиги.
Обрасти функционалом этому плагину не сложно.
Какие еще идеи? Делал то для себя. Просто делюсь со всеми)
avatar
может адаптировать просто класс рендеринга формы из массива, кажись в ZF такое было, да и в друпале…
avatar
добавить туда обратные методы, которые массив создают.
avatar
было бы это так легко)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.