cotonti.com : Множественный выбор в настройках параметров плагинов https://www.cotonti.com Laatste forum onderwerpen Cotonti en Fri, 21 Nov 2025 03:55:37 -0000 Macik [если я правильно понял вопрос, то…]

Внутри системы все это храниться как обычная тектовая переменная (текстовое поле ввода) из Setup файла.

varname=01:text:default_list:selected_items:Description

default_list - это список всех доступных значений (разделенный запятыми)
selected_items - это список выбранных значений (разделенный запятыми)

Таким образом (в моей реализации) $cfg['configname'] содержит список (выбранных) значений разделенный запятыми.

-----

Изначально, я вообще хотел сделать этот механизм с минимальным внутренним кодом. Т.е. в идеале была мысль сделать все это просто навесив jQuery код (без хуков вообще).

Но это не получилось, т.к. система при выводе конфиг-таблицы нигде не выводит дефолтные значения переменных. Поэтому пришлось «лезть» в хук admin.config.edit.loop. Потом еще пришлось admin.config.edit.first запользовать для фильтрации дублей из «simplelist».

За то «simple list» работает и без jQuery.

p.s. Сейчас понимаю, что можно было сделать проще: в admin.config.edit.loop - сделать только вывод скрытого поля со списком дефолтных значений переменной ($row['config_variants']), а далее дело техники и jQuery.

]]>
Zo, 30 Sep 2012 18:33:12 -0000
esclkm как идет протом вывод данной мульти имнпута : $cfg['configname'] =?

]]>
Zo, 30 Sep 2012 11:14:06 -0000
Macik Это вопрос ко мне? Не совсем понимаю о каких значениях речь.

]]>
Za, 29 Sep 2012 20:43:08 -0000
esclkm а как идет вывод значиений???

]]>
Za, 29 Sep 2012 18:53:04 -0000
Macik  

По «юзабилити» вот какие мысли:

1. Если говорить о jQueryUI multiselect, то обратите внимание на более свежую версию: http://quasipartikel.at/multiselect/index.html (которая работает с UI версией 1.8.x)

2. Есть еще пара плагинов вариантов:  
http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/
http://labs.abeautifulsite.net/archived/jquery-multiSelect/demo/

преимущество последнего (хоть и выглядит он убого) в том, что он зависит только от jQuery и не надо тащить за собой jQueryUI. (это я к тому если тащить ткие штуки «в коробку»).

По расширению функционала

Но! Если говорить о том, что стоит добавлять чеклистбокс и мультиселект в коробку, то на мой взгляд, стоит это сделать только в виде обычных элементов. И никакого навешивания на них всяких jQuery и прочих UI плагинов! 
И объясню почему:
Во-первых, это может «утяжелить» коробку дополнительными библиотеками.
Во-вторых, у каждого свои вкусы и задачи по оптимизации UI (кому-то, например, в своем проекте jQueryUI противопоказан).
В-третьих не забываем, что в Котонти есть опции отключения Ajax и jQuery и базовые элементы должны уметь работать без них.

Если уж хочется сделать красиво из коробки, то (imho) надо, как и писал выше, в «ядро» включить элементы с базовой функциональностью, и сделать плагин-расшитрение для UI, типа моего, который будет на этот элемент навышивать UI. Тогда, кому надо смогут безболезненно вырезать это UI не потеряв функционала (да и без jQuery работать сможет).

(в общем ESClkm меня опередил :) )
]]>
Za, 29 Sep 2012 07:21:33 -0000
esclkm категорически против - скриптовых вариантов - только стандартные элементы

]]>
Vr, 28 Sep 2012 18:12:05 -0000
Moool13

Имело бы смысл внедрить что то вроде этого: http://quasipartikel.at/multiselect_original/

Плюсую, это намного удобнее.

]]>
Vr, 28 Sep 2012 13:19:36 -0000
Alex300 Я тоже за!

С небольшим дополнением:

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

Имело бы смысл внедрить что то вроде этого: http://quasipartikel.at/multiselect_original/ (в реализации возможны варианты, и не обязательно как в примере использовать jQueryUI)

Добавлено 1 минуты спустя:

Да, и за поддержку калбеков для возможности заполнения их возможными значениями ))))

]]>
Vr, 28 Sep 2012 10:40:34 -0000
esclkm я за ввдение чеклистбокса и мультиселекта в коробку

 

]]>
Vr, 28 Sep 2012 06:18:25 -0000
Macik #35620 Sergey:

Уже выкладывал описание http://www.cotonti.com/datas/users/regularstructure-v4_205.pdf

Масштабно (объем работ ого-го!). Но немного не о том, что я имел в виду.

 

Вот набросал - в виде отдельного плагина (extdev_multiselect).

Цель 

С минимальными затратами дать возможность разработчику плагинов получить «Multiselect» в меню настроек своего плагина:

extdev_2012-09-28_04-05_461.png

 

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

Все что надо, чтобы получить «multiselect» параметр в своем плагине это добавить его как обычный текстовый параметр в Setup файл. Чтобы он опознался системой как «multiselect» параметр надо дать ему специальное имя вида: «varname_type», где `varname` это любое имя как у обычного параметра, а `type` это тип «multiselect» элемента.

Пример: test1_multiselect=01:text:item1,item2,item3,item4,item5:item1,item3:«Multiselect» параметр

Доступны 3 типа элементов UI (см.иллюстрацию):  `simplelist`, `multiselect`, `checkboxlist`.

 

Как это использовать

использовать можно двумя способами:

1. [сложный, но более гибкий] скопировать часть кода из файлов extdev_multiselect.rc.php и extdev_multiselect.admin.conf.php в свой плагин, исправив пару переменных . 

2. [совсем простой] просто подключить параллельно со своим плагином, установив в настройках режим `global`.

(естественно не забыв добавить нужные параметры в свой плагин или изменив старые).

 

Попробовать:

Код на ГитХабе: https://github.com/macik/cot-extdev_multiselect

 

]]>
Vr, 28 Sep 2012 01:41:40 -0000
Sergey Уже выкладывал описание http://www.cotonti.com/datas/users/regularstructure-v4_205.pdf

]]>
Wo, 26 Sep 2012 06:13:40 -0000
esclkm решал - для плагина новостей)

да и множественный выбор будет имет ряд проблем)))

как и файловое поле в конфиге

]]>
Wo, 26 Sep 2012 06:00:19 -0000
Macik Не первый раз при разработке расширений сталкиваюсь с необходимостью использовать в настройках плагинов поле с мультивыбором (сейчас доступен только Select с выбором одного значения).

Посмотрел как устроен парсинг параметров при установке и настройке плагина - решил, что малой кровью дописать реализацию не выйдет. Надо править насколько файлов (extensions.php, admin.config.php, admin.extensions.php).

Пока, как компромис, хочу реализовать такое в виде небольшого расширения (т.е. одного файла), который надо будет добавдять к собственному плагину, чтобы включить «мультивыбор» для указанного параметра. Вот только пока не рашил как выглядеть будет, как линейка чекбоксов или как список с мультивыбором и прокруткой.

Может кто-то уже решал подобную задачу?

 

]]>
Wo, 26 Sep 2012 03:04:48 -0000