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

bachik85

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Добрый день.
В очередной раз обращаюсь за помощью к светлым головам современности ^-^.
Не получается добавить товар в корзину с карточки товара - кидает на страницу с ошибкой, при возврате на карточку товара висит ошибка: Ошибка.Товар невозможно заказать в данном количестве.Максимальное количество заказа 0. http://xn----8sba3acic0amntje8j.in.ua/index.php?option=com_jshopping&controller=product&task=view&category_id=34&product_id=1863&Itemid=117
При этом из категории товар в корзину добавляется...
Много искал об этой ошибке, она часто встречается, но ответа нигде нет...
В консоле показывает вот такую ошибку:
Failed to load resource: the server responded with a status of 404 (Not Found) УРЛ/plugins/system/plg_ztools/plg_ztools/assets/images/loading.gif
Советовали отключить плагин ztools, ни помогло.
Подозреваю что корзина перестала работать после установки модуля "Расширенный фильтр товаров JoomShopping (на базе стандартного)" скаченного тут. При его остановки ошибка не исчезает.
Два дня самостоятельных поисков решения не привели к результату. Последняя надежда Вы, хотя не люблю кого-то напрягать. Уйма сайтов с такими ошибками, так что тема будет актуальной.
При вводе в поисковик "Ошибка.Товар невозможно заказать в данном количестве.Максимальное количество заказа 0." выдает не решения а много сайтов, в которых эта ошибка проиндексировалась и считывается как ключевое слово))))
« Последнее редактирование: 28.10.2015, 16:19:04 от bachik85 »
*

dmitry_stas

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

bachik85

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
куда то category_id задевали из формы, вот и не добавляет. верните
Я извиняюсь, в Joomla новичок... Проверил через кабинет у всех категорий АйДи на месте. Может подскажите где искать...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
в шаблоне карточки товара в форме должен быть
Код
<input name="category_id" ... />
у вас нет. посмотрите как в шаблоне default сделано
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

bachik85

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
в шаблоне карточки товара в форме должен быть
Код
<input name="category_id" ... />
у вас нет. посмотрите как в шаблоне default сделано
Все вышло. Огромное спасибо. Эт хотел поднять корзину выше описания и такое начудил. Еще раз благодарен.
*

dimast84

  • Новичок
  • 1
  • 0 / 0
Я так и не понял решение этой проблемы:? у меня тоже самое происходит, помогите люди пожалуйста((((
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться