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

HATAK

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Извиняюсь но поиск ничего не дал. Как можно задать в списке товаров выбор количества? То есть что бы покупатель сразу видя весь список товаров мог поместить нужное ему количество выбранного товара в корзину не заходя для этого на страницу самого товара.
*

dmitry_stas

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

HATAK

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
ОО!! Большое спасибо!
*

viteg

  • Захожу иногда
  • 209
  • 2 / 0
а есть ли решение для Joomla 3 ?
*

dmitry_stas

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

viteg

  • Захожу иногда
  • 209
  • 2 / 0
Пробовал, естественно) не устанавливается.
Версия:
JoomShopping Version 4.10.4
Joomla! 3.4.4
*

dmitry_stas

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

nevigen

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

viteg

  • Захожу иногда
  • 209
  • 2 / 0
Да, на версии 4.10.5 все работает.
Спасибо в очередной раз,  Nevigen и Dmitry_stas)

Просто видел отсутствие надписи о поддержке плагина на сайте разработчика, и потому прямо спросил - можно ли.
*

viteg

  • Захожу иногда
  • 209
  • 2 / 0
Но появилась другая проблема. На данном сайте мне не нужно плюсы-минусы, а нужно только поле для ввода кол-ва товаров в списке товаров. В списке сами кнопки убрал, но теперь при вводе количества, в корзину все равно отправляется 1 товар.
И в товаре вместо поля ввода теперь просто неизменяемое значение. Как можно просто сделать возможность ввода кол-ва товаров в категории?
*

viteg

  • Захожу иногда
  • 209
  • 2 / 0
В общем удалил расширение, сейчас пробую добавить input в список товаров, но при вводе кол-ва добавляется все равно только 1 товар. Не знаю как заставить компонент обрабатывать введенное число, а не продолжать работать по умолчанию
« Последнее редактирование: 05.10.2015, 12:47:07 от viteg »
*

Biss

  • Давно я тут
  • 995
  • 101 / 0
в плагине удалить блок-функцию что выводит кнопки онбифодисплейвиевкатегори. Но зачем тогда плагин можно просто добавить + - в карточку товара без плагина
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
Не знаю как заставить компонент обрабатывать введенное число, а не продолжать работать по умолчанию
в списке товаров вам нужно подменять href ссылки Купить. добавлять туда quantity.

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

viteg

  • Захожу иногда
  • 209
  • 2 / 0
в списке товаров вам нужно подменять href ссылки Купить. добавлять туда quantity.

Для этого нужно саму функцию поменять, видимо? так как сейчас там
Код
href="<?php echo $product->buy_link?>"
*

dmitry_stas

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

error648398

  • Захожу иногда
  • 168
  • 21 / 0
Ну я использовал такой скрипт:
Код
<script>

jQuery(document).ready(function () {
document.querySelector('#quantity#').addEventListener('change', function () {
       var lnk = document.querySelector('#button_buy#'),  // ссылка
    val = this.value;

      // если в ссылке уже есть установленное значение параметра quantity
     if (/'&quantity='/ .test(lnk.href)) {
        lnk.href.replace(/'&quantity='/, '' + val);
    } else { // устанавливаем в первый раз
       lnk.href += '&quantity=' + val
    }

}, false);
});
</script>

Надо было вывести несколько категорий и товаров с них в табах, скрипт кривоват, но может переделаете для себя.
*

viteg

  • Захожу иногда
  • 209
  • 2 / 0
какую функцию?
Функцию генерации вот этой ссылки
Код
<?php echo $product->buy_link?>
, ну или как это правильно назвать)
*

dmitry_stas

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

viteg

  • Захожу иногда
  • 209
  • 2 / 0
Я вернул аддон на место) пробовал сделать без него, но не вышло.. обратился за советом, а Вам, видимо, легче задавать глупые вопросы нежели ответить на глупые мои)

В общем, я Вашу позицию понял. Если не хотите сказать что либо по делу, то я буду пробовать дальше сам.
« Последнее редактирование: 06.10.2015, 22:16:05 от viteg »
*

dmitry_stas

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

viteg

  • Захожу иногда
  • 209
  • 2 / 0
Свою ошибку нашел и исправил, все работает. Действительно нужно было просто аккуратно удалить кнопки + и -
Но Дмитрий, неужели нельзя было сразу так и сказать. что я занимаюсь не той фигней? А то Ваши вопросы еще больше запутали..
*

nevigen

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Свою ошибку нашел и исправил, все работает. Действительно нужно было просто аккуратно удалить кнопки + и -
Но Дмитрий, неужели нельзя было сразу так и сказать. что я занимаюсь не той фигней? А то Ваши вопросы еще больше запутали..

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

viteg

  • Захожу иногда
  • 209
  • 2 / 0
мне кажется я так сразу и сказал, разве нет?
я еще до поста так и сделал, но видимо где то затер лишнее, изза чего не работало. полез сюда писать, и запутался еще больше. ладно, главное результат. всем спасибо
*

BiJey

  • Осваиваюсь на форуме
  • 30
  • 8 / 0
как бы это реализовать с атрибутами? как выводить атрибуты в списке товаров разобрался. а вот как первый атрибут вставить в ссылку Купить...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35721
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Модуль карусели товаров 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
Плагин обновления цен и остатков товаров JoomShopping из CSV

Автор sergeytolkachyov

Ответов: 0
Просмотров: 1540
Последний ответ 24.12.2024, 14:50:42
от sergeytolkachyov
Сортировка товаров в админке

Автор Emotion

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