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

Night_Pilgrim

  • Захожу иногда
  • 74
  • 0 / 0
мне теперь интересно, как обновить до 4.13 ?

upd. увидел как... ушёл пробовать  ^-^
*

dmitry_stas

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

Night_Pilgrim

  • Захожу иногда
  • 74
  • 0 / 0
уже обратил, только у меня сложность, что я обновляю на локальной машине и почему-то первый же архив с обновлением не хочет устанавливаться (можно вручную загрузить файлы, но сдаётся мне что это "неправильно", к тому же на переходе от 4.6.1 к 4.7.0 появился файл sql и ещё один файл, просто так вручную которые нет возможности добавить)
*

Night_Pilgrim

  • Захожу иногда
  • 74
  • 0 / 0
Цитировать
Ошибка
Archive does not exist

Error
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
System - RSFirewall стоит такое расширение?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Night_Pilgrim

  • Захожу иногда
  • 74
  • 0 / 0
Цитировать
System - RSFirewall стоит такое расширение?

нет

+ попробовал на хостинге обновиться с 4.6.0 до 4.6.1 (обнова с базой никак взаимосвязана, поэтому решил, что могу себе позволить рискнуть обновиться на тестовой площадке)... и снова та же ошибка, что и на xampp'e

Цитировать
Ошибка
Archive does not exist

Error

мне сейчас интересно "вручную" эти обновы установить, как-нибудь, реально?
*

dmitry_stas

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

Night_Pilgrim

  • Захожу иногда
  • 74
  • 0 / 0
Joomla! 3.6.4 Stable - на хосте (до Joomla! 3.6.5 каюсь, не обновлял)

и на сайте и на XAMPP

при попытке установить обновление, пишет:

Цитировать
Предупреждение

Внимание: файл /tmp/JoomShopping-update-4.6.0-4.6.1.zip не был загружен из соображений безопасности!

« Последнее редактирование: 27.12.2016, 15:30:15 от Night_Pilgrim »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
попробуйте в файле \administrator\components\com_jshopping\controllers\update.php
заменить
Код
$uploaded = JFile::upload($tmp_src, $tmp_dest);
на
Код
$uploaded = JFile::upload($tmp_src, $tmp_dest, false, true);
и попробовать установить обновление. если получится, то после очередного обновления этот файл возможно будет переписан, и придется повторять.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Night_Pilgrim

  • Захожу иногда
  • 74
  • 0 / 0
Да, получилось! :)
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
хорошо :) теперь по одному обновлению, по очереди, и до последнего. после какого то обновления (по моему 4.9), появится возможность обновлять просто по ссылке - http://prntscr.com/dofjh3. только оно сразу не заработает, придется накатить еще пару обновлений руками :) но зато потом станет удобнее и проще.

P.S. разделил тему, а то обсуждаемое к Правила и Право возврата уже мало отношения имеет
« Последнее редактирование: 27.12.2016, 15:44:31 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Night_Pilgrim

  • Захожу иногда
  • 74
  • 0 / 0
в общем итог такой, что обновить до 4.15 мне удалось, но в итоге слетел шаблон магазина :(
так что очень удачно я обновился XAMPP'е, а не на живом магазине
*

tanya_nsp

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
попробуйте в файле \administrator\components\com_jshopping\controllers\update.php
заменить
Код
$uploaded = JFile::upload($tmp_src, $tmp_dest);
на
Код
$uploaded = JFile::upload($tmp_src, $tmp_dest, false, true);
и попробовать установить обновление. если получится, то после очередного обновления этот файл возможно будет переписан, и придется повторять.
Эти действия помогли до версии 4,7, на ней вылезла ошибка
Fatal error: Call to a member function getElementsByTagName() on null in /home/halva/nspdoma.com/www/plugins/jshoppingadmin/extended_menu/extended_menu.php on line 66
и то я ее увидела, как понизила версию PHP/ Что с ней делать безпонятия
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор sergeytolkachyov

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

Автор goga_pgasovav

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

Автор heartlink

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

Автор sergeytolkachyov

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

Автор goga_pgasovav

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