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

vasilisa1210

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Я сделала емейл необязательным, для этого закоментила строку 103-ю  $coreField = (in_array($row->name, $this->lists['coreFields']));
в файле www\administrator\components\com_virtuemart\views\userfields\tmpl\default.php

Цитировать
//$coreField = (in_array($row->name, $this->lists['coreFields']));

Затем в админке магазина - настройки - поля заполняемые пользователями сделала емейл необязательным.

Теперь когда человек при заказе не указывает емейл выдается ошибка в конце заказа - Необходимо указать хотя бы одного получателя электронной почты.

как убрать это сообщение?
*

vasilisa1210

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
нашла выход, но не помешает ли такой выход работе сайта?

В файле language/ru-Ru/ru-RU.ini

есть переменная PHPMAILER_PROVIDE_ADDRESS="Необходимо указать хотя бы одного получателя электронной почты."

ее надо заменить на любой текст.

*

varX

  • Живу я здесь
  • 2466
  • 141 / 5
  • разработка компонентов
Используйте
<input type="hidden" name="email" value="none@domen.ru" />
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

vasilisa1210

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Используйте
<input type="hidden" name="email" value="none@domen.ru" />

а подскажите в каком файле его использовать? я немного не поняла
*

varX

  • Живу я здесь
  • 2466
  • 141 / 5
  • разработка компонентов
Посмотрите в каком файле формируются формы на регистрацию и редактирование учетной записи. Туда и добавляйте.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

ussr983

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Всем привет
ну что разобрались с этим плохим сообщением?
помогите
*

st_jimmy96

  • Осваиваюсь на форуме
  • 47
  • 5 / 0
*

ihos

  • Захожу иногда
  • 71
  • 0 / 0
А мне этот способ не помог!
Письмо покупателю приходит, а администратору нет(((
Уже башка болит
*

vanda77

  • Новичок
  • 3
  • 0 / 0
Долго билась над аналогичной проблемой и выяснила, что: данные о заказе отправляются с адреса, указанного в настройках сайта на email супер администратора под id 42. Если у вас в пользователях не существует супер админа с id 42, то происходит такой глюк. При этом в самом магазине выскакивает сообщение JUser: :_load: Не удалось загрузить пользователя с ID: 42
Для устранения необходимо зайти в базу данных jos_users и изменить id существующего админа на 42. После этого почистить устаревший кеш в joomle. Все должно заработать. Предварительно создать еще одного супер администратора, например admin2 и через него заходить в админку т.к. есть вероятность, что поле изменения id старого администратора в админку не получится зайти под его паролем. Возможно, есть другие варианты решения проблемы.



« Последнее редактирование: 18.04.2013, 16:05:47 от vanda77 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не разрешать добавлять товары пока, не оформишь заказ одного производителя?

Автор Dolphin4ik_1

Ответов: 2
Просмотров: 814
Последний ответ 04.01.2019, 15:53:11
от voland
Как отключить генерацию ссылок сортировки?

Автор Anna01

Ответов: 13
Просмотров: 1206
Последний ответ 05.03.2017, 19:59:45
от capricorn
E-mail администратору о заказе отстутствующего товара

Автор SolopoV

Ответов: 2
Просмотров: 1032
Последний ответ 08.01.2017, 16:13:52
от SolopoV
Как отключить или удалить в товарах keywords?

Автор art22

Ответов: 3
Просмотров: 1063
Последний ответ 18.06.2016, 01:58:26
от art22
Как отключить askquestion чтобы не формировал ссылку?

Автор art22

Ответов: 2
Просмотров: 1312
Последний ответ 05.03.2015, 15:22:08
от yrygvay