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

deeprus

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Здравствуйте.

Обнаружилась непонятная проблема с сортировкой по цене - при выборе этого варианта сортировки страница становится пустой (то есть товары с неё исчезают).
При этом остальные варианты сортировки работают без нареканий. Версии Joomla и JoomShopping последние. Стоит расширенный AJAX-фильтр, хотя я его уже пробовал отключать и это никак не повлияло на проблему.

В чём может быть причина?

Если нужно "потестить" - тут (не реклама, сайт не запущен ещё)
« Последнее редактирование: 05.07.2012, 01:46:42 от deeprus »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Параметры order и orderby у вас передаются в POST

Если вы не редактировали файл default_config.php, то возможно проблема в sql-запросе
Включите режим отладки, если ошибка в sql - будет видно когда вы попытаетесь снова сортировать по цене.
*

deeprus

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Благодарю за подсказку!
Видимо совсем устал, даже не додумался включить отладку...

Причина действительно в кривом SQL-запросе:
Спойлер
[свернуть]

Запрашивается значение поля cr.currency_value, которое больше нигде в запросе не фигурирует.
Как я понимаю, задумывалась универсальная сортировка товаров с ценами в разной валюте, но что-то недопилили.

Решил пока в лоб - в файле /components/com_jshopping/lib/jtableauto.php, в котором формируется запрос
строку 147 (JoomShopping 3.7.2)
Код
$order = "prod.product_price/cr.currency_value";

исправил на
Код
$order = "prod.product_price"; // /cr.currency_value";

Теперь работает :)
*

kurandin

  • Захожу иногда
  • 159
  • 5 / 0
Re: Сортировка по цене => пустая страни
« Ответ #3 : 27.07.2012, 02:26:52 »
У меня одинаковая проблема:
при сортировке по цене вылазит ошибка
Цитировать
Warning: Invalid argument supplied for foreach() in /home/users/k/kurandin/domains/2012/components/com_jshopping/lib/functions.php on line 608

Warning: Invalid argument supplied for foreach() in /home/users/k/kurandin/domains/2012/plugins/jshoppingproducts/user_group_product_price/user_group_product_price.php on line 86

Warning: Invalid argument supplied for foreach() in /home/users/k/kurandin/domains/2012/components/com_jshopping/lib/functions.php on line 394
и товара нет

сортировка по другим параметрам работает без нареканий

пробовал отключить AJAX фильтр и плагин user_group_product_price (JoomShopping Product price User group) - не помогло
совет от deeprus выполнил
сайт 3zl.ru
ДжумШоппринг Version 3.7.2, Joomla! 2.5.6
« Последнее редактирование: 29.07.2012, 21:39:00 от kurandin »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Включите Debug mode в Joomla
*

kurandin

  • Захожу иногда
  • 159
  • 5 / 0
Включите Debug mode в Joomla
включил
*

kurandin

  • Захожу иногда
  • 159
  • 5 / 0
включил

вопрос решили отключением плагина Ajax-поиска
тема закрыта
*

chereushenko

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Спасибо автору, помогло. в репу + :D
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
JS 4.8.0 когда выбрать сортировку по цене, то товары в категории сортируются, но после этого невозможно перейти в любую карточку товара . Ошибка
1054 - Unknown column
Прошу помочь исправить
« Последнее редактирование: 25.12.2014, 20:42:27 от Biss »
*

dmitry_stas

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

Biss

  • Давно я тут
  • 995
  • 101 / 0
много чего стоит, из плагинов и аддонов. если нужно перечислить я напишу. но скажу что плагины все отключал не помогло, видимо что-то с базой или обновления не так прошли как надо, магазин обновляется еще с версии 3.5.0 всё последовательно я про это в курсе.
Да на демо у меня тоже всьо ок, но там с версии 4.7.0
*

dmitry_stas

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

Biss

  • Давно я тут
  • 995
  • 101 / 0
последний чекер 1.0.8 ничего не нашел и тот шо перед ним стоял тоже
пробовать модули тоже отключить, я так понимаю только те что связаны с магазином?
----------------
все модули откл = результат прежний
« Последнее редактирование: 25.12.2014, 19:33:35 от Biss »
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
Выяснил
Product navigations for JoomShopping
Вот его код
Спойлер
[свернуть]
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну вот видите :) а говорите отключали все :) добавьте

Цитировать
      $query = "SELECT *, `prod`.`name_ru-RU` as name FROM `#__jshopping_products` AS prod
            INNER JOIN `#__jshopping_products_to_categories` AS pr_cat ON `pr_cat`.`product_id` = `prod`.`product_id`
            LEFT JOIN `#__jshopping_categories` AS cat ON `pr_cat`.`category_id` = `cat`.`category_id`
            ".$adv_from."
            WHERE `prod`.`product_publish` = 1 AND `pr_cat`.`category_id` = ".$category_id." ".$order_query;
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
 :dry:Видимо где-то был кэш. Спасибо и +
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1355
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav
Сортировка товаров в админке

Автор Emotion

Ответов: 26
Просмотров: 6712
Последний ответ 15.08.2024, 08:00:20
от kit2m2
Сортировка тоаров в катеоории

Автор misteri27

Ответов: 1
Просмотров: 813
Последний ответ 04.09.2022, 11:49:46
от kit2m2
Сортировка атрибутов

Автор misteri27

Ответов: 1
Просмотров: 1147
Последний ответ 02.09.2022, 22:17:18
от victorantoniak
Решено: предустановленная сортировка товаров в JoomShopping

Автор urm

Ответов: 24
Просмотров: 4649
Последний ответ 03.07.2022, 12:52:41
от kit2m2