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

vilena26

  • Захожу иногда
  • 95
  • 14 / 0
Несколько дней назад вдруг начала часто появляться ошибка 404 на страницах магазина и постоянно выдаёт такую ошибку:

Warning: Invalid argument supplied for foreach() in ...../components/com_jshopping/lib/jtableauto.php on line 20

Что это может быть?

Поискав в интернете, смотрю не только у меня одной такое:

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

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
warning не ошибка, для жш явление обычное.
отключите отображение ошибок на хостинге.

404 другое дело это уже существенней

собственно хочу отметить, слово "вдруг" обычно свидетельствует что для решения вопроса необходимы экстрасенсы.
соответственно такой квалификацией тут обладают возможно единицы.

думайте что было перед "вдруг" и что могло стать причиной.
ничего не делала, ничего не меняла = ничего не произошло, значит 404 нормальная работа.

Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

vilena26

  • Захожу иногда
  • 95
  • 14 / 0
warning не ошибка, для жш явление обычное.
отключите отображение ошибок на хостинге.

Этот компонент магазина уже не первый год стоит на сайте, но такие ошибки начали появляться впервые (см.рис.1). Если обновляю страницу, ошибки исчезают.
Ничего на сайте не делала и не меняла.

404 другое дело это уже существенней
думайте что было перед "вдруг" и что могло стать причиной.
ничего не делала, ничего не меняла = ничего не произошло, значит 404 нормальная работа.

Также и с ошибкой 404. Страница существует, но когда пользователь нажимает на неё, выскакивает ошибка. Если обновить страницу, предварительно очистив кэш или в другом браузере, страница открывается. Но не все покупатели об этом догадаются.

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

[вложение удалено Администратором]
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Компонент не обновляли ?
А хотя сорри :) куда уже обновлять:) только с Жумлой.

Ну у меня все нормально отображается в каталоге
только на главной каталога слева выбивает
Warning: Invalid argument supplied for foreach() in /home/vhosts/handmadeshop.md/httpdocs/modules/mod_banners/tmpl/default.php on line 9
но к ЖШ отношения не имеет.
спросите на хостинге они ничего не меняли ?

Ну и обновляться Вам надо;)
все меньше и меньше людей кто помнит о Вашей версии ЖШ :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Включите debug mode Joomla
*

dstavropolskij

  • Захожу иногда
  • 106
  • 10 / 0
warning не ошибка, для жш явление обычное.
Не ну вы извините. Если конечно fatal error только ошибкой считать. А вообще форикать массив не имея даже проверки тупой на isset == cattlecode чтоль.

2ТС -- попробуйте вспомнить, что происходило перед возникновением проблем -- новый хост, включение-отключение кеша, изменилась структура каталога, новые версии ПО на хосте. И тп.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
А вообще форикать массив не имея даже проверки тупой на isset == cattlecode чтоль.
Не совсем правильно... isset всего лишь сообщает о наличии переменной, а не о её содержимым. Поэтому конечно правильнее было бы проверять is_array().
И конечно же объявлять эту переменную сначала как пустой массив, и только после этого этот массив заполнять.
Да что тут говорить... ЖШ до сих пор использует методы Joomla 1.5.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
В магазине нет Warning

Проблема скорее всего с БД
*

vilena26

  • Захожу иногда
  • 95
  • 14 / 0
Компонент не обновляли ?
Компонент не обновляла и вообще нигде не лазила. Думаю обновиться до последних версий и представляю сколько свалится дополнительных проблем :(

Ну у меня все нормально отображается в каталоге только на главной каталога слева выбивает
Warning: Invalid argument supplied for foreach() in /home/vhosts/handmadeshop.md/httpdocs/modules/mod_banners/tmpl/default.php on line 9
но к ЖШ отношения не имеет.
спросите на хостинге они ничего не меняли ?

В том то и дело что, если обновить ещё раз страницу, эта ошибка исчезнет. Или могут появиться на других страницах. Или вдруг выскакивает ошибка 404, ни с того, ни с сего, а если захожу с другого браузера или обновляю кэш, то страница открывается.
С тех.суппортом хостинга начала переписку, но такое впечатление что разговариваю со стенкой.
*

vilena26

  • Захожу иногда
  • 95
  • 14 / 0
В магазине нет Warning

Проблема скорее всего с БД

Вот выписка из error.log. Часто выскакивает один и тот же [warn]:

Код
[Sun Apr 07 20:08:10 2013] [error] [client 46.188.22.231] File does not exist: /home/vhosts/handmadeshop.md/httpdocs/master-class, referer: http://www.handmadeshop.md/master-class/52-kak-sdelat-personazhej-angry-birds-iz-polimernoj-gliny
[Sun Apr 07 20:10:40 2013] [error] [client 89.28.120.204] File does not exist: /home/vhosts/handmadeshop.md/httpdocs/catalog, referer: http://www.handmadeshop.md/catalog/chains/spandeks-rezinka-08-mm
[Sun Apr 07 20:10:58 2013] [warn] [client 89.28.120.204] mod_fcgid: stderr: PHP Warning: Invalid argument supplied for foreach() in /home/vhosts/handmadeshop.md/httpdocs/components/com_jshopping/lib/jtableauto.php on line 20, referer: http://www.handmadeshop.md/catalog/cart/add
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Включите debug mode Joomla
*

vilena26

  • Захожу иногда
  • 95
  • 14 / 0
Включила, но там я ничего не понимаю.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
*

vilena26

  • Захожу иногда
  • 95
  • 14 / 0
Так в том то и дело, что эти ошибки караулить надо. Они не всегда появляются. Если обновить страницу, исчезают. О них я потом узнаю из error.log.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор itbc

Ответов: 4
Просмотров: 1346
Последний ответ 08.05.2024, 10:31:16
от itbc
Ошибка при заполнении поля Улица/Номер дома. Как исправить ошибку?

Автор admi5575

Ответов: 9
Просмотров: 1629
Последний ответ 10.05.2023, 07:21:14
от admi5575
При обновлении Joomshopping до 4.16 и Joomla до 3.9.3 - ошибка 1054

Автор busik

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

Автор Kugata

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

Автор oleg1015

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