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

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Добрый день сообщество.

Не в курсе ли кто часом. Есть ли возможность реализации выбора пользователем в чекауте (из селест списка) на какой email будет отправлено письмо администратору?

ПОЯСНЕНИЕ: К примеру есть 3 склада с товаром. Допустим пицца. И человек при заказе выбирает любимый/ближайший склад(ресторан). И после всей феерии с заполнением регистрационных полей, на Email, выбранный из списка среди других полей, склада приходит уведомление о заказе.

Есть ли способ с помощью которого на одном из этапов чекаута можно было бы выбрать с помощью селеста один из массива админимейлов, вбиваемых в настройках магазина?

Нельзя ли как то передать значение value инпута в model или в сессию? Ничего другого пока в голову не приходит.  :( Т.к. в php только учусь.
*

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
Да только что еще пару раз перепроверил. Вбито в настройке 2 адреса - на оба приходит без каких либо проблем.

Знаю что в моделе чекаута за отправку писем админам отвечает вызов массива из БД $mailer->addRecipient(explode(';',$jshopConfig->contact_email));
Можно ли как то передать выбор элемента из всего массива с помощью инпута?
« Последнее редактирование: 21.12.2013, 14:35:58 от Sni10 »
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
*

Sni10

  • Захожу иногда
  • 110
  • 5 / 0
  • I am a law abiding citizen . . .
И брать параметр $jshopConfig->contact_email не из #_jshopping_config -> contact_email а из нового поля в #_jshopping_orders.

Спасибо буду пробовать. Чуть позже отчитаюсь что вышло.

UP.

Получилось.По детски криво, коряво, до первого обновления, но работает . Просто заменил получателя в /components/com_jshopping/models/checkout.php
Код
$mailer->addRecipient(explode(',',$jshopConfig->contact_email));

на получение адреса из таблицы #_jshopping_orders
Код
$mailer->addRecipient($order->ext_field_1);

Где при регистрации пользователь выбирает наименование склада и value вбивается в БД.

И checkout.php уже вытягивая значение поля ext_field_1 подставляет его в майлер и на выбранный адрес уходит уведомление о заказе.

Как то так. Особое спасибо Виталику за наводку на идею  :D . +1 с меня.
« Последнее редактирование: 22.12.2013, 00:33:41 от Sni10 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как запретить ввод пробела в поле email в JoomShopping?

Автор kassilukraine

Ответов: 12
Просмотров: 1854
Последний ответ 26.05.2021, 09:30:03
от ShopES
Автоматическое снятие с продаж товара в JoomShoppin

Автор mavr

Ответов: 7
Просмотров: 1987
Последний ответ 03.05.2020, 23:10:37
от MDenis
(JoomShoping) Сделать поле email необязательным для ввода

Автор eavasi

Ответов: 136
Просмотров: 23160
Последний ответ 23.07.2019, 07:34:40
от nevigen
Вывод информации о доставке во всплывающk

Автор evpadallas

Ответов: 37
Просмотров: 12330
Последний ответ 17.11.2018, 01:22:43
от Mushu-svbk
Блокировка по Email

Автор misteri27

Ответов: 5
Просмотров: 770
Последний ответ 11.11.2018, 21:18:39
от misteri27