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

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Предлагаем сообществу модуль, отображающий последние просмотренные товары JoomShopping. Актуальность данного решения в том, что JoomShopping базово не хранит данные о просмотренных товарах, соответственно, ранее виденные нами существующие решения (на момент написания модуля) отображали товары, просмотренные пользователем в рамках сессии на сайте. Что доставляло неудобство, т.к. пользователь, зайдя на сайт, видел товары, просмотренные с момента его сессии, а при небольшой посещаемости сайта, это просмотренные им же товары. JMB JShopping Last Seen Products сохраняет данные о просмотренных товарах и позволяет отображать актуальные данные без привязки к сессии.
Дистрибутив JMB JShopping Last Seen Products распространяется как установочный пакет, включающий в себя системный плагин и модуль. Плагин сохраняет данные (его нужно просто опубликовать), модуль же отображает последние просмотренные пользователями товары из указанных категорий.

Таким образом, можно назначить в позицию модуль, и в каждой конкретной категории выводить последние просмотренные в этой категории или группе категорий товары.

Страница расширения
Демо страница

Информация:
  • Название: JMB JShopping Last Seen Products
  • Лицензия: GPLv.3
  • Локализации: английский, русский

Системные требования:
  • Joomla 3.x
  • JoomShopping 4.x

Если вам понравилось расширение, можете проголосовать за него на странице на J.E.D.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
 Поставил ради интереса - все заработало. Визуально - сделано все лаконично и аккуратно.
 При переходе к просмотру нового товара - он сразу отобразился в JMB JShopping Last Seen Products - что несколько нелогично.
 Наверное можно сделать отображение последних с задержкой 1-2 минуты добавив условие выборки из jos_jmb_jshopping_last_seen_products?
 Поле 'time' ведь пишется полноценно: 2016-11-20 15:13:24.
 Автору +1.
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Рады, что модуль вам понравился :-) Будем благодарны, если оставите короткий отзыв на JED.
Касательно пожеланий - спасибо, учтем в новой версии.
*

Beer

  • Завсегдатай
  • 1103
  • 43 / 1
  • БИРУ - БИР!
Вот чего я узрел - ссылка названия товара ведет на главную сайта.
Исправил (методом тыка) так:
\modules\mod_jmb_jshopping_last_seen_products\default.php
Код
<a href="<?php echo $product->link ?>"><?php echo $product->name ?></a>
Стало:
Код
<a href="<?php echo SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id=' . $product->category_id .'&product_id=' . $product->product_id, 1); ?>"><?php echo $product->name ?></a>

На JED не зареган я к сожалению, но видимо ради такого дела придется.
*

Sulpher

  • Живу я здесь
  • 2130
  • 402 / 16
  • Шаблоны и расширения Joomla
Исправление, предложенное Beer, внесено. Доступна версия 1.0.3 данного модуля, включающая данный фикс.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Re: Модуль AJAX корзины (Multi)

Автор Садко

Ответов: 97
Просмотров: 19430
Последний ответ 08.10.2023, 07:49:27
от kit2m2
Модуль красивого выбора валюты

Автор beagler

Ответов: 8
Просмотров: 5006
Последний ответ 12.03.2023, 01:42:31
от ecolora
Модуль категорий + товары + аккордеон

Автор Efanych

Ответов: 118
Просмотров: 27201
Последний ответ 02.10.2022, 22:04:42
от Biss
Модуль вывода товаров категории JS5

Автор marksetter

Ответов: 15
Просмотров: 3216
Последний ответ 24.08.2022, 18:52:35
от marksetter
Продвинутый модуль Товары по метке

Автор ecolora

Ответов: 7
Просмотров: 3343
Последний ответ 27.04.2022, 14:24:02
от ecolora