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

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
отлично... нужная штука..
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

N.Nick

  • Захожу иногда
  • 233
  • 5 / 0
Выдаёт ошибки при использовании
Warning: Missing argument 6 for JTableAvto::getBuildQueryListProductSimpleList(), called in /home/riffmusi/public_html/plugins/content/jsproductsnapshots/jsproductsnapshots.php on line 217 and defined in /home/riffmusi/public_html/components/com_jshopping/lib/jtableauto.php on line 165
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Я разрабатывал плагин на магазине 3.7.0, в нем у функции JTableAvto::getBuildQueryListProductSimpleList() пять аргументов. Скопируй сюда свою функцию и скажи версию магазина. Посмотрим что можно сделать.
*

step-di

  • Захожу иногда
  • 91
  • 5 / 0
В параметрах плагина нужно указывать Id
как можно указать чтобы выводились все товары?
не перечислять же все все id

лучше будет указывать в параметрах id корневой категории
и если товар из подкатегории, то вывести заголовок этой подкатегории перед выводом списка ее товаров
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
 Ты собираешься весь магазин плагином показывать? Зачем-же тогда сам магазин?
*

N.Nick

  • Захожу иногда
  • 233
  • 5 / 0
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

N.Nick

  • Захожу иногда
  • 233
  • 5 / 0
Я не знаю где это :)

Может это Вам поможет: Warning: Missing argument 6 for JTableAvto::getBuildQueryListProductSimpleList(), called in /home/riffmusi/public_html/plugins/content/jsproductsnapshots/jsproductsnapshots.php on line 217 and defined in /home/riffmusi/public_html/components/com_jshopping/lib/jtableauto.php on line 165

Выделенна вроде функция про которую вы говорите, только аргументов у меня 6
« Последнее редактирование: 24.06.2012, 19:13:22 от N.Nick »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Вот мне и интересно как выглядит у тебя функция JTableAvto::getBuildQueryListProductSimpleList(), находящаяся в /components/com_jshopping/lib/jtableauto.php on line 165
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Я еще 7.0.2 не ставил, по этому не знаю что там.
*

nnax

  • Новичок
  • 7
  • 0 / 0
N.Nick,

Для версии 3.7.2 в файле jsproductsnapshots.php нужно для ф-ии getBuildQueryListProductSimpleList добавить 2-ой параметр null:
$jshopProduct->getBuildQueryListProductSimpleList("tophits", null, $array_categories, $adv_query, $adv_from, $adv_result);

Предупреждение исчезнет)

*

nnax

  • Новичок
  • 7
  • 0 / 0
Правда, так и не удалось в 3.7.2 вывести расположение продуктов горизонтально....
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Там стили недоделаны, возможно из-за этого.
*

mirinair

  • Новичок
  • 8
  • 0 / 0
А где можно настроить стили отображения товаров? И можно ли как-то сделать вывод случайных товаров?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
1. Стили в assets\style.css в папке плагина.
2. Случайные товары выводит модуль случайных товаров. Этот плагин помогает продавать не случайные товары, а те, которые соответствуют контенту.
*

Amadeus71rus

  • Новичок
  • 1
  • 0 / 0
Я несколько доработал Ваш плагин, теперь он полностью настраивается из админки (в настройках плагина).

В материале достаточно прописать

Код
{product_snapsh ot:id=1|2|3}


соответственно с нужным количеством id.

Если где-то нужно особенный вывод - указываем полные параметры вывода

Код
{product_snapshot:id=1|2|3,showname=y,showprice=y,showdesc=y,showaddtocart=y,displayeach=v,to_one_line=2,displaylist=h,width=100%}

Надеюсь кому-то будет полезно.

Ссылка под спойлером.

Спойлер
[свернуть]
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

Alienoff

  • Захожу иногда
  • 186
  • 0 / 0
Спасибо за отличный модуль!
Очень пригодился
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

maike

  • Захожу иногда
  • 53
  • 0 / 0
Я несколько доработал Ваш плагин, теперь он полностью настраивается из админки (в настройках плагина).

В материале достаточно прописать

Код
{product_snapsh ot:id=1|2|3}


соответственно с нужным количеством id.

Если где-то нужно особенный вывод - указываем полные параметры вывода

Код
{product_snapshot:id=1|2|3,showname=y,showprice=y,showdesc=y,showaddtocart=y,displayeach=v,to_one_line=2,displaylist=h,width=100%}

Надеюсь кому-то будет полезно.

Ссылка под спойлером.

Спойлер
[свернуть]
Ошибка Warning: Invalid argument supplied for foreach() in \www\components\com_jshopping\lib\functions.php on line 624
Product not found
Не контачет плагин .....
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
А товар ид которого указан существует?
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Для версии 3.11.4 выводится ошибка:
Цитировать
Warning: Missing argument 6 for plgJshoppingProductsTo_Parent_Category::onBeforeQueryGetProductList() in plugins/jshoppingproducts/to_parent_category/to_parent_category.php on line 13

Да, знаю, что плагин для другой версии магазина делался, но может быть можно избавиться от этой ошибки? Сам-то товар в контент выводится, только вот эта ошибка висит.

-------------------------------
Добавлено:

Да, плагин хороший для более ранних версий. Ещё есть проблема с ценой: если отмечено "выводить цену", выводится 0. Если отмечено "не выводить цену", выводится сама строка {product_snapshot:id=Х}
« Последнее редактирование: 18.01.2013, 07:04:56 от Maxum »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
насчет warning.
Они должны быть вообще то отключены на хостинге.
Можете закрыть в хтаксессе попробовать, либо как это делали разработчики в ЖШ :) жестко
Код
error_reporting(E_ALL & ~E_NOTICE);
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Код
[quote author=nevigen link=topic=219189.msg1264502#msg1264502 date=1358502332]
Можете закрыть в хтаксессе попробовать
[/quote]

Спасибо, попробую. Но если спрячется ошибка, проблема с ценой не исчезнет :)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Для версии 3.11.4 выводится ошибка:
Да, знаю, что плагин для другой версии магазина делался, но может быть можно избавиться от этой ошибки? Сам-то товар в контент выводится, только вот эта ошибка висит.

-------------------------------
Добавлено:

Да, плагин хороший для более ранних версий. Ещё есть проблема с ценой: если отмечено "выводить цену", выводится 0. Если отмечено "не выводить цену", выводится сама строка {product_snapshot:id=Х}

А какое отношение этот плагин имеет к названной ошибке?
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
А какое отношение этот плагин имеет к названной ошибке?

Простите, возможно я что-то не додумываю. Есть страница с текстом, добавляю туда строку {product_snapshot:id=Х} - есть ошибка. Убираю строку - нет ошибки.
Попробую по-другому: предыдущие версии JoomShopping соответствовали требованиям плагина, а в 3.11.4 что-то переделали и теперь плагин не может корректно работать. Если кто-нибудь видит, что эти сложности с работой плагина нетрудно устранить, подскажите, пожалуйста, как это сделать.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
plgJshoppingProductsTo_Parent_Category - класс которого нет в этом плагине, в этомплагине класс называется по другому. Найдите плагин в котором есть этот класс и спросите у его разработчика почему он реагирует на строку, на которую не должен реагировать.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
2Максим
это плагин вывода вывод товаров из дочерних категорий в родителе.
для этого есть другая тема http://joomlaforum.ru/index.php/topic,199506.150.html
там и можно обсуждать.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Спасибо за ответы.
Сбило с толку, что это предупреждение появляется только на страницах с плагином вывода товаров в контент.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Plugin Generate PDF Product

Автор maximis

Ответов: 40
Просмотров: 6551
Последний ответ 27.03.2024, 23:23:02
от Napst3r
Фильтр товаров крашит сайт

Автор psiworm

Ответов: 4
Просмотров: 2087
Последний ответ 04.11.2023, 12:31:07
от nevigen
Альтернатива Joomshopping+JComments? Есть!

Автор sibay70

Ответов: 19
Просмотров: 10461
Последний ответ 20.10.2022, 13:55:04
от marksetter
Фильтр товаров не отображается на странице поиска товаров

Автор Lemonez

Ответов: 8
Просмотров: 2736
Последний ответ 21.09.2022, 20:26:18
от Lemonez
Модуль вывода товаров категории JS5

Автор marksetter

Ответов: 15
Просмотров: 3209
Последний ответ 24.08.2022, 18:52:35
от marksetter