Forums / National / Russian / Модули и плагины / Дополнение для плагинов (ExtDev Helper: show/hide)

скрывает/отображает дополнительные параметры настройки вашего плагина

Macik
#1 2012-10-04 16:33

Написал небольшое дополнение для разработчиков. Для удобства оформил в виде плагина, хотя можете использовать в своем проекте просто скопировав часть кода (это просто - об этом ниже).

Что это и для чего: Это расширение интерфейса настройки плагинов. Если в плагине используется масса настроек, то ориентроваться в них, когда они отображены единой таблицей бывает не просто. Тем более иногда возникают ситуации, когда часть параметров актуальна только в случае выбора конкретного режима или значения. 

Для этого и служит данное расширение - оно позволяет скрывать и отображать часть параметров в зависимости от того, какие значения вы выбираете.

Пример: абстрактный плагин имеет 2 режима работа (режим «все пользователи»/режим « только модератор»), в зависимости от выбранного режима вам надо настроить дополнительные параметры. Естественно в стандартном варианте все параметры всегда будут у вас на экране, что не улдобно. А запустив скрипт вы будете иметь возможность видеть только параметры «для модератора», когда выбран режим «модератор» и видеть параметры «для пользователей», когда выбран режим «пользователи».

Вот тут демкаhttp://static.galaxyhost.org/cotonti/showhide.swf.html (экшен начинается с ~7-8 секунды)

Реализуется вся эта магия одним JS скриптом (который подгружается на странице настроек плагина) и специальными правилами именования переменных плагина (тех, что располагаются в *.setup.php файле).

Как использовать в своем проекте (2 варианта)

1. установить данный плагин в систему, выбрать в его настройках режим «global», переименовать переменные в своем плагине согласно правилам.

2. взять JS файл (extdev_showhide.js) из этого плагина и подключить на странице настроек вашего плагина, переименовать переменные в своем плагине согласно правилам.

 

Правила именования переменных:

для примера. наш плагин может опционально работать с библиотекой jQueryUI, и в настройках плагина присутствует параметр «путь к библиотеке jQueryUI». 
Вот так в таком случае могу выглядеть параметры в setup файле:

 

jqueryui=01:radio:0,1:1:Use jQueryUI
jquery_path=02:string::./js/jqueryui.js:Path to jQueryUI lib

Естественно, когда мы не используем библиотеку jQueryUI, параметр «путь к библиотеке jQueryUI» нам не нужен, и мы будем его скрывать.

Для этого изменим наименования параметров особым образом: к имени управляющего параметра добавим префикс «_#sh», а к зависимым параметрам (тем, которые будут скрываться/отображаться) добавим префикс «_sh_$», где вместо знака $ надо указать значение главного параметра при выборе которого данный параметр будет отображен. В нашем случае это «1». Получим такой вариант:

jqueryui_#sh=01:radio:0,1:1:Use jQueryUI
jquery_path_sh_1=02:string::./js/jqueryui.js:Path to jQueryUI lib

 Теперь второй параметр («путь к библиотеке») в таблице настроек будет отображаться только в том случае, если параметр «jqueryui_#sh» включен.

-----------------

Плюс такого расширения в его простой интеграции, просто подгрузить 1 js скрипт и переименовать параметры плагина.

Если внедряете в уже готовый плагин надо добавить 1-2 строки для переименовывания параметров к вашим стандартным именам:

	$my_plug_cfg = $cfg['plugin']['my_plug'];
	$my_plug_cfg = array_combine(preg_replace("/_#?sh\d*(_.*)?/", '', array_keys($my_plug_cfg)), array_values($my_plug_cfg));

--------

Чуть позже выложу код на ГитХаб.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
esclkm
#2 2012-10-04 18:17

мило! скоро ты совсем убьешь конфиги!)

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Macik
#3 2012-10-04 19:22
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Trustmaster
#4 2012-10-05 04:35

Я до сих пор старался избегать таких сложных конфигов и это даже как-то получалось :) Но если удача меня покинет, то это неплохой вариант :)

May the Source be with you!
Dayver
#5 2012-10-06 11:05
Полезное решение. Вот например для плагина карты сайта AN Sitemap думаю было бы самое то
Pavlo Tkachenko aka Dayver