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

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
Здравствуйте уважаемые форумчане!
У меня на сайт установлен компонент JoomShopping (версия 4.18.7.)
При заполнении формы заказа возникает ошибка. Ошибка при заполнении поля "Улица/Номер дома".
Появляется сообщение:
"Ошибка
Пожалуйста, введите улицу".
К следующему шагу сейчас оформление не переходит. Заполнение формы приостанавливается на данном шаге.

Будьте добры, ответьте, как решить данный вопрос? Как правильно настроить компонент JoomShopping?
« Последнее редактирование: 07.05.2023, 13:55:43 от admi5575 »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
configuration / Fields Registration

Настройки?
*

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
Доброго дня!
Прилагаю скриншоты с настройками:
« Последнее редактирование: 07.05.2023, 15:20:26 от admi5575 »
*

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
configuration / Fields Registration

Настройки?
Доброго дня!
Благодарю вас, Victorantoniak! Ваш ответ помог. Я по другому расставил галочки в тех настройках, которые вы указали, и сообщение об ошибке перестало появляться. Я включил почти все галочки в одном из столбцов, также включил "Заявление о конфиденциальности" в указанных вами настройках, и вопрос был решен.
*

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
Доброго вечера!
На данный момент, вопрос решил таким образом. Прилагаю скриншоты новых настроек. После того, как настройки были сделаны так, как показано на скриншотах, вопрос благополучно решился.
*

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
Какая именно настройка оказала решающее воздействие, мне неизвестно.
Словом, вопрос был решен методом подбора каких-то других настроек. Например, было включено "Заявление о конфиденциальности".
***
Вы не в курсе, какая именно настройка могла оказать решающее воздействие (на то, чтобы сообщение об ошибке исчезло)?
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Улица номер дома. (возможно проблема в вашем шаблоне - нет нужного поля)

У вас не установлено "Обязательно".
*

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
Здравствуйте!
Если быть более точным, то мной была предпринята следующая последовательность действий.
1. Сначала я обновил компонент JoomShopping до самой последней версии (через панель управления CMS Joomla). На днях компонент Joomshopping был мной обновлен с версии 4.18.7 до версии 4.18.9.
2. Затем я понял, что настройки ранее установленного шаблона (для Joomshopping) сбились. Так всегда бывает, когда обновляешь компонент JoomShopping. У нас установлен шаблон от Александра Куртеева. В компонент вероятно загрузился предустановленный, первичный шаблон от разработчиков компонента.
3. Затем я стал переключать галочки в настройках.
Таким образом, выполнив данные 3 пункта, вопрос временно был решен (по поводу ошибки при заполнении поля "Улица/Номер дома").
***
То есть, вы считаете, что дело может быть в шаблоне от Александра Куртеева? То есть, получается, что у нас каким-то образом пользователи на сайте давно не могли заказывать товары, поскольку дело могло быть в том шаблоне?
Или ошибка возникала по каким-то другим причинам? В чем может быть причина той ошибки? Как ее правильно устранить?
***
Странно. Раньше все работало. Я сам производил тестовые заказы на сайте (с применением шаблона от Александра Куртеева). Заказы успешно раньше приходили на почту.
Потом все поменялось. Непонятно, в какой момент все поменялось.
***
Мои вопросы носят предположительный характер.

« Последнее редактирование: 10.05.2023, 07:46:00 от admi5575 »
*

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
Да, на данный момент я убрал галочки из столбца "Обязательно". Переключение галочек в настройках каким-то "волшебным" образом временно позволили решить вопрос.
*

admi5575

  • Захожу иногда
  • 55
  • 0 / 0
Примечание: я также увидел на форуме, что по данной ссылке обсуждался аналогичный вопрос.
Ссылка.
Разобраться с обязательностью полей

Однако, по данной ссылке вопрос не был, вероятно, решен полностью. Здесь вопрос обозначен.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка при изменении статуса товара

Автор itbc

Ответов: 4
Просмотров: 1345
Последний ответ 08.05.2024, 10:31:16
от itbc
Дополнительные поля товаров Joomshoping

Автор Alex_gs

Ответов: 7
Просмотров: 1458
Последний ответ 07.10.2022, 07:57:41
от marksetter
При обновлении Joomshopping до 4.16 и Joomla до 3.9.3 - ошибка 1054

Автор busik

Ответов: 8
Просмотров: 2995
Последний ответ 15.12.2021, 01:01:46
от nevigen
На PHP 8 ошибка в мобильной версии

Автор Kugata

Ответов: 6
Просмотров: 1097
Последний ответ 15.09.2021, 19:22:42
от ShopES
Ошибка 0 Call to a member function setModel() on bool

Автор oleg1015

Ответов: 2
Просмотров: 1066
Последний ответ 31.07.2021, 07:04:53
от Taatshi