скрывает/отображает дополнительные параметры настройки вашего плагина
Macik |
|
---|---|
Написал небольшое дополнение для разработчиков. Для удобства оформил в виде плагина, хотя можете использовать в своем проекте просто скопировав часть кода (это просто - об этом ниже). Что это и для чего: Это расширение интерфейса настройки плагинов. Если в плагине используется масса настроек, то ориентроваться в них, когда они отображены единой таблицей бывает не просто. Тем более иногда возникают ситуации, когда часть параметров актуальна только в случае выбора конкретного режима или значения. Для этого и служит данное расширение - оно позволяет скрывать и отображать часть параметров в зависимости от того, какие значения вы выбираете. Пример: абстрактный плагин имеет 2 режима работа (режим «все пользователи»/режим « только модератор»), в зависимости от выбранного режима вам надо настроить дополнительные параметры. Естественно в стандартном варианте все параметры всегда будут у вас на экране, что не улдобно. А запустив скрипт вы будете иметь возможность видеть только параметры «для модератора», когда выбран режим «модератор» и видеть параметры «для пользователей», когда выбран режим «пользователи». Вот тут демка: http://static.galaxyhost.org/cotonti/showhide.swf.html (экшен начинается с ~7-8 секунды) Реализуется вся эта магия одним JS скриптом (который подгружается на странице настроек плагина) и специальными правилами именования переменных плагина (тех, что располагаются в *.setup.php файле). Как использовать в своем проекте (2 варианта) 1. установить данный плагин в систему, выбрать в его настройках режим «global», переименовать переменные в своем плагине согласно правилам. 2. взять JS файл (extdev_showhide.js) из этого плагина и подключить на странице настроек вашего плагина, переименовать переменные в своем плагине согласно правилам.
Правила именования переменных:
для примера. наш плагин может опционально работать с библиотекой jQueryUI, и в настройках плагина присутствует параметр «путь к библиотеке jQueryUI».
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 |
|
---|---|
мило! скоро ты совсем убьешь конфиги!) littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |
Macik |
|
---|---|
:) https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Trustmaster |
|
---|---|
Я до сих пор старался избегать таких сложных конфигов и это даже как-то получалось :) Но если удача меня покинет, то это неплохой вариант :) May the Source be with you!
|
Dayver |
|
---|---|
Полезное решение. Вот например для плагина карты сайта AN Sitemap думаю было бы самое то
Pavlo Tkachenko aka Dayver
|