Новости 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 Гость просматривают эту тему.
  • 9 Ответов
  • 1655 Просмотров
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
« Последнее редактирование: 11.01.2016, 16:44:55 от denxio »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
На странице со списком товара, вместо выпадающего списка SELECT с выбором количества товаров на странице, вывести ссылки. К примеру: "8, 16, 20, все"
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
а как это?
Ну чтобы было не в селекте, а кнопками, типа как при смене вида.

Делал, где то на форуме есть, там пример с сортировкой правда, но суть одна и таже, вместо селекта кнопки.
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
Есть
Делал, где то на форуме есть, там пример с сортировкой правда, но суть одна и таже, вместо селекта кнопки.
А можно ссылку на тему получить или на готовый проект? А то не могу найти :(
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
А можно ссылку на тему получить или на готовый проект? А то не могу найти :(

В принципе, всего 762 сообщения, думаю найти можно..)

Вспомнил, Linfuby мне плюс ставил..))
Вот тема: http://joomlaforum.ru/index.php/topic,299591.msg1486004.html
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
Посмотрел. Не совсем то. Хотелось бы по принципу как здесь: http://evanature.ru/ukhod-za-telom/milo-gel-skrab
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
Разобрался. В своем шаблоне в файле form_filters.php в элементе FORM вставил следующий код:

Код
<div class="box_products_count_to_page">Показывать: &nbsp;                                        					
<a href="#" class="sort_active" onclick="jQuery('#limit').val('8'); submitListProductFilters(); return false">8</a>
<a href="#" class="" onclick="jQuery('#limit').val('40'); submitListProductFilters(); return false">40</a>
<a href="#" class="" onclick="jQuery('#limit').val('99999'); submitListProductFilters(); return false">Все</a>
</div>

В этом же файле:
1. в конце добавил <input type = "hidden" name = "limit" id = "limit" value = "20">
2. убрал вывод списка SELECT с количествами страниц.
*

Pilot1604

  • Осваиваюсь на форуме
  • 21
  • 1 / 0
От себя добавлю - для выделения активной ссылки с текущим количеством товаров на странице немного модернизировал код, ну и оставил константу для мультиязычности
Код
<div class="box_products_count_to_page"><?php echo _JSHOP_DISPLAY_NUMBER?> &nbsp;                                        					
<a href="#" class="<?= $this->pagination_obj->limit == 15? 'sort_active': ''?>" onclick="jQuery('#limit').val('15'); submitListProductFilters(); return false">15</a>
<a href="#" class="<?= $this->pagination_obj->limit == 30? 'sort_active': ''?>" onclick="jQuery('#limit').val('30'); submitListProductFilters(); return false">30</a>
<a href="#" class="<?= $this->pagination_obj->limit == 45? 'sort_active': ''?>" onclick="jQuery('#limit').val('45'); submitListProductFilters(); return false">45</a>
</div>
« Последнее редактирование: 17.03.2016, 14:05:08 от Pilot1604 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35708
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

Ответов: 2
Просмотров: 2046
Последний ответ 04.07.2025, 10:30:36
от sergeytolkachyov
[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1355
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav
Плагин обновления цен и остатков товаров JoomShopping из CSV

Автор sergeytolkachyov

Ответов: 0
Просмотров: 1534
Последний ответ 24.12.2024, 14:50:42
от sergeytolkachyov
Видео с Youtube вместо картинки на карточке товара

Автор ksena

Ответов: 35
Просмотров: 10211
Последний ответ 08.10.2024, 04:26:36
от kit2m2