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

КСС

  • Захожу иногда
  • 52
  • 0 / 0
Доброго времени суток! VirtueMart 3.0.16, Joomla 3.6.2. Нужно было создать оптовые цены в интернет-магазине, для этого зашел в раздел "Заказы и покупатели" - "Группы покупателей" и там создал группу "Оптовики". Затем в соседнем подразделе "Покупатели" тестовому покупателю присвоил эту группу "Оптовики". Далее зашел в товар, внизу карточки товара нажал "Добавить новую цену", если была например 70р то там в новой цене ставлю например 60р, а группу пользователей правее ставлю уже не для всех а "Оптовики".
С этим как бы справился, но как сделать так, чтобы пользователь из группы "Оптовики", авторизовавшись увидел только те товары, на которые я поставил оптовую цену? убрав весь товар с розничной ценой. Или данной функции нет в VirtueMart? Просто пользователю будет крайне неудобно искать среди массива в тысячу с лишним товаров допустим сотню товаров с оптовой ценой не зная где такой товар расположен, мысль уже возникла отправлять оптовику файл с оптовым товаром, чтобы он знал какой у нас есть в наличии, но это неудобно. ^-^
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
так поставьте когда забиваете цену обычную, что бы ее видели все кроме оптовиков
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

КСС

  • Захожу иногда
  • 52
  • 0 / 0
так поставьте когда забиваете цену обычную, что бы ее видели все кроме оптовиков
Точно, спасибо Вам огромное! ))) Единственное, теперь придется перелопатить каждый из 1000 с лишним товаров проставляя группы пользователей убирая оптовиков. :)
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Точно, спасибо Вам огромное! ))) Единственное, теперь придется перелопатить каждый из 1000 с лишним товаров проставляя группы пользователей убирая оптовиков. :)
так назначьте для групп товаров по умолчанию
насколько помню такое возможно...вирта под руками нет...точно не подскажу
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

КСС

  • Захожу иногда
  • 52
  • 0 / 0
Хм, не нашел такого раздела групп товаров... В принципе мне не сложно поставить всем этим товарам определенные группы пользователей. )) Тут возникла новая проблема, как теперь убрать неиспользуемые для опта категории товара в личном кабинете оптовика, но чтобы они оставались видны розничным покупателям? Товары из категории убрались ненужные ему, но остается сама категория и подкатегория с превью фотками. Это лишнее, особенно для тех, кто заходит с мобильного устройства, пока их все пролистаешь, пользователю надоест и уйдет с сайта. ) Нужно чтобы оптовик сразу видел только те категории и подкатегории, в которых реально есть оптовый товар на продажу. В самом разделе категорий и настроек VM что то ничего не нашлось по этой проблеме.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
проставь в настройках категорий и подкатегорий права для всех кроме оптовиков на просмотр
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

КСС

  • Захожу иногда
  • 52
  • 0 / 0
Если я захожу в категорию или её подкатегорию, там есть вверху кнопка "Права", но это явно не то, так как при нажатии на неё, меня перекидывает в настройки прав определенного типа пользователей , возможно не прав, но мне кажется в VM нет на данный момент такой функции просто.
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
да все верно...придется по товарам
сейчас накатил вирт на тестинг и посмотрел
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отображение полей CF в карточке товара

Автор farmer66

Ответов: 2
Просмотров: 2664
Последний ответ 17.02.2023, 13:39:18
от farmer66
Вывод изображений настраиваемого поля в карточке товара

Автор wasssup

Ответов: 0
Просмотров: 2734
Последний ответ 05.07.2022, 08:51:19
от wasssup
Умножение свойств товара в настраиваемом поле атрибут корзины

Автор cvoboda

Ответов: 22
Просмотров: 5211
Последний ответ 20.10.2020, 11:54:13
от NIKOLY
Как удалить дочерние товары в карточке товара VM 2?

Автор zeus07

Ответов: 0
Просмотров: 1134
Последний ответ 12.05.2020, 14:51:39
от zeus07
[Решено] Вывод других товаров тойже категории в карточке товара

Автор x-render

Ответов: 30
Просмотров: 9104
Последний ответ 06.01.2020, 07:39:31
от Igoritaly