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

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Только сейчас заметил на 2-х сайтах (раньше было всё нормально; видимо, появилось при каком-то обновлении движка), что всплывающие подсказки для labels  в форме обратной связи имеют вид:
Код
<strong>Имя</strong><br />Ваше имя
<strong>E-mail</strong><br />Адрес электронной почты контакта
Вот прямо такие тексты во всплывающих окнах...
Форма контакта (из компонента Contacts) назначена пункту меню. Joomla! 3.4.8.
Это я один такой счастливый или у кого-нибудь тоже наблюдается такая прелесть?
Какие предположения направления лечения?
*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
tooltip не загружен. Возможно, из /media/jui/js/bootstrap.min.js , или что у вас там используется?
Веб-разработка: заказ. Только новая разработка.
*

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Код
 <script src="/media/jui/js/bootstrap.min.js" type="text/javascript"></script>
Имеется.
*

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Обнаружил ещё в <head>:
Код
<script type="text/javascript">
    (function() {
      Joomla.JText.load({"JLIB_FORM_FIELD_INVALID":"\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043f\u043e\u043b\u0435: "});
    })();
  </script>
*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
Обнаружил ещё в <head>:
это дефолт - JLIB_FORM_FIELD_INVALID = "Некорректно заполнено поле:"

в скриптах что-то такое есть ?
Спойлер
[свернуть]

ссылки, конечно, нет?
Веб-разработка: заказ. Только новая разработка.
*

Olg

  • Завсегдатай
  • 1182
  • 90 / 2
Немного запоздалый отчёт по теме -- хотя маловероятно, что это может кому пригодиться...
1) Спасибо уважаемому fsv за дружеский пинок в нужном направлении.
2) Разборка очевидной вещи -- формы обратной связи через встроенный компонент "Контакты" -- показала, что эта форма требует js бутстрапа и тянет за собой странно выглядящий в коде страницы js проверки корректности заполнения полей.
3) Переопределять файл вывода формы (после взгляда на него) мне не захотелось, поэтому для формы обратной связи просто установил минималистичный модуль.
*

Vovansk

  • Захожу иногда
  • 56
  • 2 / 0
Здравствуйте! Прошу помощи.
Joomla 3.6.2, шаблон protostar
Сделал форму обратной связи через встроенный компонент "Контакты", получил ошибку в коде:
Joomla.JText.load({"JLIB_FORM_FIELD_INVALID":"...
Не знаю, важно, нет, перед этим ставил модуль "обратный звонок" с форума
(Модуль обратного звонка для Joomla 3.0 mod_simplecallback)
в коде появлялась эта же ошибка, пока отключил, хотя включу если вопрос решится.
Скопировал код для наглядности,
Спойлер
[свернуть]
Сам думаю, что просит установить bootstrap-tooltip.js и в тексте кода есть упоминание bootstrap-popover.js, наверно его тоже просит, надеюсь подскажете тоже.
Попробовал бы установить методом тыка но на сайте разраба (http://bootstrap-ru.com/204/javascript.php#tooltips) плагины выложены в текстовом виде и я не соображу в каком формате их сохранить и в какую папку их вставить. Надо чтоб он и с модулем "обратный звонок" работал и с компонентом "контакты". Как правильно сделать, подскажите пожалуйста))
« Последнее редактирование: 19.10.2017, 12:11:17 от Vovansk »
*

Vovansk

  • Захожу иногда
  • 56
  • 2 / 0
Здравствуйте! Так и не могу найти ответ. Несколько дней убил, не доходит до меня и всё((
Где надо внести изменения, чтоб в коде скрипты отобразились а не ошибки?
Что выводит эти скрипты в код, разные на разных страницах, шаблон?
Пробовал в index.php шаблона вставлять как тут описано, (http://joomlaforum.ru/index.php/topic,280535.msg1517324.html#msg1517324) появились скрипты в коде но ошибки не пропали.
Засунул bootstrap-tooltip.js и bootstrap-popover.js туда где лежат другие bootstrap (/media/jui/js), не помогло... Как их "установить"?
Я не придумал как закачать текстовый плагин на сайт, сделал копии имеющихся в media/jui/js js, переименовал и заменил содержимое. Жизнеспособный метод?
это дефолт - JLIB_FORM_FIELD_INVALID = "Некорректно заполнено поле:"
Как это понять, точнее, исправить где?
« Последнее редактирование: 30.08.2016, 09:35:06 от Vovansk »
*

bolonia

  • Захожу иногда
  • 222
  • 27 / 0
Joomla.JText.load({"JLIB_FORM_FIELD_INVALID":"...   - это не ошибка. Это Joomla сохраняет переменную с текстом, в случае, если будут ошибки в заполнении форм.

Судя по тексту у вас полная каша в голове. Начните изучать HTML, CSS, JS, системно, в интернете куча курсов.
Бесплатный модуль обратного звонка / обратной связи для J3: http://joomlaforum.ru/index.php?topic=309065.0
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Скажите, а как вообще отключить эти всплывающие окна?

Заранее спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться