Новости 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 Ответов
  • 2382 Просмотров
*

motrek

  • Новичок
  • 5
  • 0 / 0
На сайте интернет магазина есть регистрация, но ни Гость, ни зарегистрированный пользователь не увидит свои товары, отложные в корзину, после закрытия браузера. Как сделать чтоб товары в корзине хранились сколь угодно долго, пока клиент не созреет для покупки. Что делать? Joomla 2.5, JS 3.15.3.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
По поводу Гостя - Вам здесь ответили
*

motrek

  • Новичок
  • 5
  • 0 / 0
Переписал вопрос в нужную ветку. Гость заходит и может быстро заказать товар, оформить и все в порядке. Но зарегистрированный пользователь должен иметь привилегии, такие как сохранение товаров в корзине. Но даже если пользователь зарегистрируется, корзина все равно очищается при выходе и при повторном визите зарегистрированный пользователь видит пустую корзину. Неудобно для клиента. Есть ли какие-нибудь дополнительные модули для реализации такой функции или может в стандартных настройках что нужно изменить?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А имеется ли в функционале магазина что-то типа списка отложенных или желаемых покупок? Может, автоматом при закрытии сессии туда отправлять? Имхо, корзина должна оставаться пустой при выходе из магазина: либо Вы ничего не купили (неважно, хотели Вы это купить и передумали или же просто на кассе обнаружили, что кошелек дома забыли) либо Вы ушли с покупкой.
*

motrek

  • Новичок
  • 5
  • 0 / 0
Имхо, корзина должна оставаться пустой при выходе из магазина: либо Вы ничего не купили (неважно, хотели Вы это купить и передумали или же просто на кассе обнаружили, что кошелек дома забыли) либо Вы ушли с покупкой.
Ну это только ваше мнение... Многие клиенты магазина долго выбирают, бывает несколько дней. А если каждый раз нужно начинать поиск понравившихся товаров заново, это не удобно. Во многих интеренет-магазинах нет никаких "списков желаемых покупок", есть просто Корзина из которой ничего не пропадает, пока сам пользователь (Предварительно зарегистрированный) не удалит ненужное. И естественно, после заказа корзина автоматически отчищается.
А зачем мы обсуждаем важность и нужность этой функции корзины, я спрашивал совета по конкретной реализации...
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А зачем мы обсуждаем важность и нужность этой функции корзины, я спрашивал совета по конкретной реализации...
О, это скорее абстагированное рассуждение, на примере вообще магазина, не только электронного, сори.

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

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Последние просмотренные товары JoomShopping

Автор Sulpher

Ответов: 29
Просмотров: 9429
Последний ответ 13.10.2023, 22:05:16
от sergeytolkachyov
Как сделать файлы для продажи доступными для скачивания при любом статусе заказа?

Автор UNh0ly

Ответов: 4
Просмотров: 2176
Последний ответ 18.09.2023, 09:10:17
от ИммоБокс
JoomShopping умер после обновления

Автор Alex_gs

Ответов: 3
Просмотров: 1070
Последний ответ 08.05.2023, 15:02:11
от Akeksandr
JoomShopping - категории и товары

Автор Adm1nspb

Ответов: 48
Просмотров: 13905
Последний ответ 24.03.2023, 12:12:32
от kibervolk
Товары с меткой шли первыми в списке товаров категории

Автор rudoy24

Ответов: 20
Просмотров: 2873
Последний ответ 20.03.2023, 14:44:22
от goga_pgasovav