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

denxio

  • Захожу иногда
  • 172
  • 4 / 0
Кто-нибудь задавался таким вопросом?
Хочется, чтобы товар не снимался с публикации и прямые ссылки на него были доступны, чтобы поисковик видел ссылки. Но, при этом, он не был доступен пользователю из поиска, спика товаров.
*

dmitry_stas

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

denxio

  • Захожу иногда
  • 172
  • 4 / 0
Да. Проблема даже не в том, чтобы скрыть товар из списка. Скрыть можно, написав простое условие по количеству. Но в этом случае на разных страницах может выводиться неодинаковое количество товаров.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Да.
это на какой вопрос - на первый или второй?

Но в этом случае на разных страницах может выводиться неодинаковое количество товаров.
а вот тут не понял ничего. это что имеется в виду?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
1. Да -- это значит "чтобы как бы и был, и одновременно вроде чтобы как бы и не было" :)
2. Самое простое – это в шаблоне вывода товаров категории можно написать условие, если количество товара равно нулю, то он не отображается. Товар не будет выведен. Но товар просто не будет отображаться на странице. Допустим, в настройках указано выводить на странице 50 товаров. Из них на первой странице выводится 10 товаров с нулевым количеством. Если скрыть эти товары, выведется 40. На второй странице количество товаров с нулевым количеством будет не 10, а, к примеру, 2. И получится, что на второй странице выведется 48 товаров. И так далее. Я к тому, что ограничение вывода работает уже в процессе отображения товара, а не в процессе генерации его количества на странице.
« Последнее редактирование: 22.01.2016, 16:55:14 от denxio »
*

denxio

  • Захожу иногда
  • 172
  • 4 / 0
А плагин, на который вы дали ссылку, в общем, решить вопрос может. Хоть и не совсем так, как хотелось. Спасибо. :)
*

vilena26

  • Захожу иногда
  • 95
  • 14 / 0
Хочется, чтобы товар не снимался с публикации и прямые ссылки на него были доступны, чтобы поисковик видел ссылки. Но, при этом, он не был доступен пользователю из поиска, спика товаров.

В Настройках/Товар есть опция "Скрыть товары, которые не доступны на складе"
*

dmitry_stas

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

Последние просмотренные товары JoomShopping

Автор Sulpher

Ответов: 29
Просмотров: 9433
Последний ответ 13.10.2023, 22:05:16
от sergeytolkachyov
JoomShopping - категории и товары

Автор Adm1nspb

Ответов: 48
Просмотров: 13905
Последний ответ 24.03.2023, 12:12:32
от kibervolk
Товары с меткой шли первыми в списке товаров категории

Автор rudoy24

Ответов: 20
Просмотров: 2874
Последний ответ 20.03.2023, 14:44:22
от goga_pgasovav
Как добавить код в <head> в отдельные товары JoomShopping?

Автор Hugo

Ответов: 3
Просмотров: 3014
Последний ответ 01.03.2023, 12:07:42
от Hugo
Как отобразить список список отзывов клиента в кабинете клиента?

Автор Dolphin4ik_1

Ответов: 1
Просмотров: 600
Последний ответ 28.01.2022, 11:08:20
от kit2m2