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

Alex_Kur

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Добрый вечер!
Делаю магазин, специфика магазина такова что у каждого товара более 400 атрибутов (разнообразные вариации, которые кроме всего прочего комбинируются). К сожалению у меня более 84 никак не выходит. Появляется ошибка:
Код
Warning: mysqli_real_escape_string() expects parameter 2 to be string, array given in /home/домен//libraries/joomla/database/driver/mysqli.php on line 246
Есть ли выход?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ограничение количества атрибутов?
« Ответ #1 : 29.03.2016, 21:07:51 »
я конечно не уверен... но по моему налицо неправильная структура магазина... сложно представить товар с 400+ атрибутами. что это, если не секрет?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Ограничение количества атрибутов?
« Ответ #2 : 29.03.2016, 22:19:27 »
400 атрибутов у товар ? ШОК !
я бы ушел сразу... не выбирал бы точно.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Re: Ограничение количества атрибутов?
« Ответ #3 : 30.03.2016, 01:25:19 »
400 атрибутов у товар ? ШОК !
я бы ушел сразу... не выбирал бы точно.
Я думаю (надеюсь), что они не все сразу в  одном товаре :)
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ограничение количества атрибутов?
« Ответ #4 : 30.03.2016, 01:32:15 »
зря надеетесь :)

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

Alex_Kur

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Re: Ограничение количества атрибутов?
« Ответ #5 : 30.03.2016, 11:34:43 »
Проясню:
Атрибутов всего 5
Пример:

Плотность картона (250,300)
Красочность (4+4, 4+0)
Тираж (10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 1000, 2000, 100000, 155588844, 151515454, 1, 5, 11 и т.д - всего около 10)
Срочность (2 дня, 5 дней)
Доставка (да, нет)

Вот собственно откуда цифра ~400? т.е. у каждого тираж будет возможность выбрать: срочность, доставку, и т.д.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ограничение количества атрибутов?
« Ответ #6 : 30.03.2016, 11:40:56 »
вы имеете в виду, что выделаете это зависимыми атрибутами, и комбинаций опций получается 400+? а независимыми атрибутами это не получается сделать? по крайней мере частично, например Доставка и Срочность хотя бы вынести в независимые. Как цена формируется?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Alex_Kur

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Re: Ограничение количества атрибутов?
« Ответ #7 : 30.03.2016, 12:08:25 »
Там все настолько тонко, что нет возможно вычислить какой-то алгоритм. У меня на раках только прайс, и я это все пытаюсь оформить в виде магазина.
Независимыми атрибутами не отделаться. :-(
Так есть возможность понять что это за ошибка:
Код
Warning: mysqli_real_escape_string() expects parameter 2 to be string, array given in /home/домен//libraries/joomla/database/driver/mysqli.php on line 246
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ограничение количества атрибутов?
« Ответ #8 : 30.03.2016, 12:40:26 »
эта ошибка из-за того, что метод database escape вызван без обязательного параметра $text, либо $text не определен.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Alex_Kur

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
Re: Ограничение количества атрибутов?
« Ответ #9 : 30.03.2016, 15:20:18 »
Гм. Подскажите пожалуйста, как с этим бороться?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Ограничение количества атрибутов?
« Ответ #10 : 30.03.2016, 16:00:09 »
этого не понять только по этой ошибке. эта ошибка говорит именно об этом. а почему вызов без $text - по ней не скажешь. надо смотреть стек вызовов, откуда вызывается эта функция, и уже там отслеживать, какие данные приходят, и почему они пустые.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Интересный прием - связывание ссылками атрибутов товара

Автор Anton shop

Ответов: 5
Просмотров: 2313
Последний ответ 21.02.2023, 12:59:21
от nevigen
При выборе атрибутов в консоли setAttrValue is not defined

Автор Dolphin4ik_1

Ответов: 3
Просмотров: 826
Последний ответ 22.11.2022, 07:43:05
от kit2m2
Сортировка атрибутов

Автор misteri27

Ответов: 1
Просмотров: 1147
Последний ответ 02.09.2022, 22:17:18
от victorantoniak
Как из карточки товаров убрать выбор количества?

Автор Alex_iPod

Ответов: 4
Просмотров: 743
Последний ответ 21.03.2021, 20:41:59
от Alex_iPod
Разделить вывод атрибутов

Автор Dolphin4ik_1

Ответов: 0
Просмотров: 511
Последний ответ 25.02.2021, 12:53:33
от Dolphin4ik_1