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

alex8ebber

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Всем привет!

Помогите сделать в форме обратной связи поле e-mail не обязательным для заполнения. В components/com_contact/models/forms/contact.xml убрал required="true" и пропала звездочка, но при заполнении формы также требует заполнить данное поле. Копал в components/com_contact/views/contact/tmpl/default_form.php и templates\имя_шаблона\warp\systems\joomla\layouts\com_contact\contact\default_form.php но так ничего не нашел, так как не все понимаю и было бы вообще замечательно, если при отмечании поля "Отправить копию этого сообщения на ваш адрес" поле e-mail становилось обязательным. Сайт - http://live-motion.bl.ee/index.php/contacts
*

Лорд Лотар

  • Захожу иногда
  • 76
  • 3 / 0
  • Паладин
В свое время копал тему родной формы обратной связи.

В итоге я пришел к выводу, что ну ее нахрен. Рекомендую simpleform2, там с любыми настройками гораздо проще.

Еще гляньте это: http://joomla-support.ru/thread23951.html
« Последнее редактирование: 28.12.2013, 19:00:21 от Лорд Лотар »
*

alex8ebber

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
В свое время копал тему родной формы обратной связи.

В итоге я пришел к выводу, что ну ее нахрен. Рекомендую simpleform2, там с любыми настройками гораздо проще.

Еще гляньте это: http://joomla-support.ru/thread23951.html


Спасибо, попробую потестить и отпишу.
*

alex8ebber

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
В свое время копал тему родной формы обратной связи.

В итоге я пришел к выводу, что ну ее нахрен. Рекомендую simpleform2, там с любыми настройками гораздо проще.

Еще гляньте это: http://joomla-support.ru/thread23951.html


simpleform2 - нет для Joomla 3.0, только для Joomla 2.5 и ниже, а мне нужно 3.0 и другую тему я уже читал и не вижу у себя параметра required, который можно было бы убрать, так как там описано скорее всего для стандартных шаблонов и ситуаций или для ранних версий Joomla, в моем случае нужен какой-то другой подход(
« Последнее редактирование: 28.12.2013, 19:34:36 от alex8ebber »
*

Лорд Лотар

  • Захожу иногда
  • 76
  • 3 / 0
  • Паладин
Да, этого меняет дело. Тогда стоит глянуть так сказать "флагманские" расширения вроде
FlexiContact http://extensions.joomla.org/extensions/contacts-and-feedback/contact-forms/9743
ChronoForms http://extensions.joomla.org/extensions/contacts-and-feedback/forms/1508

В любом случае я бы не останавливался на родной форме Joomla если хочется чего-то что не входит ее стандартный функционал. Менять в ней что-то это ощутимая морока. Тем более в свежей версии.

PS: пользуясь случаем -  респект дизайнеру сайта.
« Последнее редактирование: 28.12.2013, 20:49:27 от Лорд Лотар »
*

alex8ebber

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Да, этого меняет дело. Тогда стоит глянуть так сказать "флагманские" расширения вроде
FlexiContact http://extensions.joomla.org/extensions/contacts-and-feedback/contact-forms/9743
ChronoForms http://extensions.joomla.org/extensions/contacts-and-feedback/forms/1508

В любом случае я бы не останавливался на родной форме Joomla если хочется чего-то что не входит ее стандартный функционал. Менять в ней что-то это ощутимая морока. Тем более в свежей версии.

PS: пользуясь случаем -  респект дизайнеру сайта.

Спасибо, попробую эти приложения и отпишу, за оценку сайта также спасибо, все сам корректировал, правда из готового шаблона.
*

alex8ebber

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Все же мне хочется разобраться с родной формой связи и выяснилось, что для того что бы сделать поле необязательным вполне достаточно убрать required="true" с файла components/com_contact/models/forms/contact.xml, легко потестил на поле телефон, но что бы сделать не обязательным e-mail нужно копать дальше, так как идет какая то другая привязка.
*

Лорд Лотар

  • Захожу иногда
  • 76
  • 3 / 0
  • Паладин
Возможно копать стоит в сторону регулярного выражения по которому проверяется корректность заполнения формы?
*

alex8ebber

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Возможно копать стоит в сторону регулярного выражения по которому проверяется корректность заполнения формы?

Скорее всего так и нужно, я правильно понимаю, в данном случае нужно копать в config.php, в принципе мне кажется где то там загвоздка, так как остальные рассматриваемые файлы отвечают за визуальное отображение.
*

alex8ebber

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Так и не разобрался я в данном вопросе, посоветуйте с кем можно переговорить или где написать, что бы в любом случае я мог усранить данную проблему, конечно за определенное вознаграждение.
*

off-182

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Ковырять файл \components\com_contact\models\forms\contact.xml . В поле contact_email параметр required заменить на false .
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Helix3 сделать несколько рядов не столбцов!

Автор Bowa

Ответов: 6
Просмотров: 3796
Последний ответ 04.03.2023, 20:33:40
от Petrovich
Как сделать вывод ссылок в обратном порядке (com_weblinks)?

Автор Slava77

Ответов: 0
Просмотров: 816
Последний ответ 24.11.2022, 16:42:09
от Slava77
Хлебные крошки: вместо title сделать заголовок

Автор Zelyonkin

Ответов: 2
Просмотров: 764
Последний ответ 09.09.2022, 08:46:10
от Zelyonkin
Добавление поля в категорию материалов - Yootheme Pro

Автор Missile

Ответов: 3
Просмотров: 941
Последний ответ 14.04.2021, 02:20:20
от Alex Revo
Изменить верстку дополнительного поля Radio в форме создания материала

Автор spro1

Ответов: 4
Просмотров: 916
Последний ответ 10.09.2020, 18:17:45
от sivers