Новости Joomla

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 1196 Просмотров
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
На одном из проектов столкнулся с очень странным глюком, на устранение которого потратил почти целый день.
Поэтому решил создать пост сразу с решением, как для себя, так и для тех, кто, возможно, столкнётся с такой же бедой.

Суть проблемы: в качестве корзины использую модуль Multi basket ajax.
В корзину товары добавляются нормально, количество товаров одной позиции меняется, но вот удалить товар из корзины не получается. Страница перезагружается, и товар опять в корзине. Кроме того, если уйти со страницы товара, то в корзине уже может не быть товара, который туда был добавлен ранее. В общем творилась чертовщина какая-то.

Методом тыка, путём проб и ошибок я (вроде как) докопался до истины.
Дело в том, что я использовал плагин Jshoppingrouter - Full Category Path для JoomShopping. Плагин строит полный путь от главной страницы до товара, включая псевдонимы всех категорий. Для того, чтобы плагин работал как задумано, главной страницей обязательно нужно сделать Главную категорую магазина JoomShopping.
По странному стечению обстоятельств, именно в данной ситуации перестаёт нормально работать модуль Multi basket ajax и начинются глюки, описанные мною ранее.

Решил я это дело следующим образом: создал скрытый пункт меню (допустим «Магазин» c псевдонимом «shop»), а тип этого пункта меню указал как JoomShopping -> Список категорий/Магазин. Т.е. главная страница магазина JoomShopping. После чего всё заработало. Правда за одним исключением: на главной странице сайта (которая так же имеет тип "Список категорий/Магазин") товар по прежнему из корзины не удаляется. Кроме того, в URL'е появляется ещё один сегмент
— /shop/.

Затем я решил попробовать сделать главной страницей сайта обычный материал. И... бинго! Все глюки исчезли.
При этом плагин Full Category Path вроде как работает нормально.

На этом пока всё. Если обнаружатся какие-то глюки, я обязательно дополню этот пост.
Надеюсь для кого-то вся эта писанина окажется полезной.

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Цифровые товары (для скачивания)

Автор nengyryt

Ответов: 6
Просмотров: 1592
Последний ответ 20.05.2024, 11:26:16
от Vastriet
Как смешать товары в категориях?

Автор art22

Ответов: 23
Просмотров: 2519
Последний ответ 31.08.2023, 08:10:38
от kit2m2
[Решено] Не отображать блок сопутствующих товаров если их всех нет в наличии

Автор goga_pgasovav

Ответов: 3
Просмотров: 1526
Последний ответ 20.03.2023, 19:13:28
от goga_pgasovav
[Решено] Склонение числительных (кол-во товаров) в корзине (Multi basket AJAX)

Автор goga_pgasovav

Ответов: 5
Просмотров: 1763
Последний ответ 14.02.2023, 14:30:56
от goga_pgasovav
[Решено] Не отображать краткое описание товара вместо полного на стр.товара

Автор goga_pgasovav

Ответов: 7
Просмотров: 1685
Последний ответ 30.01.2023, 15:31:24
от kit2m2