Новости 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 Ответов
  • 1707 Просмотров
*

CCTRRoman

  • Захожу иногда
  • 121
  • 3 / 0
Добрый день!
Необходимо в списке товаров в админ панели JoomShopping добавить колонку с весом товара
используем шаблон админки isis, скопировали файлы для переопределения списка товаров в /administrator/templates/isis/html/com_jshopping/product_list
используем ajax_list_products.php (Admin AJAX Products Editor) от https://www.webdesigner-profi.de/joomla-webdesign/shop/administration/admin-ajax-products-editor.html?lang=de, но в дефолтном шаблоне списка товара та же ситуация

пытаюсь определить переменные, что выводятся в этом списке с помощью <?php print_r($row);?>
получаю

Код
 stdClass Object
(
    [product_id] =&gt; 17254
    [product_publish] =&gt; 0
    [name] =&gt; Название товара
    [short_description] =&gt;
    [man_name] =&gt; ООО "Фирма"
    [namescats] =&gt; Название категории
    [ean] =&gt; 18310
    [qty] =&gt; 9.00
    [image] =&gt;
    [product_price] =&gt; 36.300000
    [currency_id] =&gt; 2
    [hits] =&gt; 0
    [unlimited] =&gt; 0
    [product_date_added] =&gt; 2017-04-28 18:47:15
    [label_id] =&gt; 0
    [manufacturer_id] =&gt; 1
    [cat_ids] =&gt; 1593
)

а веса товара нет :-(
подскажите в какую сторону копать, что б вывести колонкой вес товара
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
1) хакать магазин
2) писать плагин
3) прямо из листа запрашивать из базы

имхо, адекватен второй вариант
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

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

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
dmitry_stas, а на какое событие навешиваем работу такого плагина? Я так понимаю, нужно изменить запрос в базу данных - добавить запрашиваемую инфу?
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
угу, подменить $query. поймать запрос можно в onBeforeDisplayListProductsGetAllProducts, если нужно только добавить поля для выборки из базы, то этого достаточно. а если нужно менять еще и WHERE (т.е. например фильтры расширяем), то понадобится еще и onBeforeDisplayListProductsGetCountAllProducts, чтобы общее количество товаров для пагинации тоже правильно посчиталось
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

CCTRRoman

  • Захожу иногда
  • 121
  • 3 / 0
Колонка с весом актуальна для работы с Почтой России, так как для каждого товара приходиться проставлять вес,
сейчас это делаем через импорт-экспорт, но было бы удобнее видеть пропущенные с весов товары в списке товаров и добавлять вес "на лету", не заходя в карточку товара и не делая импорт-экспорт...

Понял, что своими силами не сделаю
Нужен плагин, написал тему в коммерческом разделе http://joomlaforum.ru/index.php/topic,337585.0.html
спасибо!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
если хак устроит, то \administrator\components\com_jshopping\models\products.php function getAllProducts добавить
Цитировать
$query = "SELECT pr.product_id, pr.product_weight, pr.product_publish, ...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35721
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 633
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1408
Последний ответ 22.07.2025, 12:40:12
от heartlink
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

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

Автор goga_pgasovav

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