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

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Форма обратной связи
« : 26.09.2014, 14:08:04 »
День добрый.
Пытаюсь изменить форму обратной связи, необходимо засунуть внутрь полей эти подписи, отмеченные стрелкой. Подсказки кривые вообще убрать. Хочется форму сделать компактнее и симпатичнее. Сложно ли? Что необходимо подправить?

Код
<div class="control-group">
                <div class="control-label"><label id="jform_contact_name-lbl" for="jform_contact_name" class="hasTooltip required" title="" data-original-title="<strong>Имя</strong><br />Ваше имя">
Имя<span class="star">&nbsp;*</span></label></div>
                <div class="controls"><input type="text" name="jform[contact_name]" id="jform_contact_name" value="" class="required" size="30" required="required" aria-required="true"></div>
            </div>
http://prntscr.com/4qfet0
« Последнее редактирование: 26.09.2014, 14:37:09 от morethanfish »
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Re: Форма обратной связи
« Ответ #1 : 26.09.2014, 15:35:33 »
Чем  выводишь форму?
...
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #2 : 26.09.2014, 15:40:43 »
Чем  выводишь форму?
Компонент-->Контакты
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Re: Форма обратной связи
« Ответ #3 : 26.09.2014, 15:43:55 »
Ну тогда ищи файл который формирует эту форму и изменяй так как тебе надо. И не забудь делать это в своём шаблоне, не надо изменять это все в самом компоненте.
...
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Форма обратной связи
« Ответ #4 : 26.09.2014, 15:48:48 »
чтоб текст был внутри полей используйте placeholder
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #5 : 26.09.2014, 16:18:20 »
А сам текст где находится? Вижу настройки текста, а вот как его убрать? Слева который. В поле вставить вроде как получилось.
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Re: Форма обратной связи
« Ответ #6 : 26.09.2014, 16:31:24 »
А сам текст где находится? Вижу настройки текста, а вот как его убрать? Слева который. В поле вставить вроде как получилось.

Весь текст находиться в языковых файлах компонента...
...
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #7 : 26.09.2014, 16:37:51 »
Весь текст находиться в языковых файлах компонента...
Почему ты советовал в нем не ковыряться?
В шаблоне это не изменить?
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Re: Форма обратной связи
« Ответ #8 : 26.09.2014, 16:44:15 »
Почему ты советовал в нем не ковыряться?
В шаблоне это не изменить?
Потому что при обновлении движка все вернётся как и было. Скопируй те файлы которые тебе надо в папку html/com_contact и уже там изменяй
...
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #9 : 26.09.2014, 16:49:28 »
Потому что при обновлении движка все вернётся как и было. Скопируй те файлы которые тебе надо в папку html/com_contact и уже там изменяй
Т.е. весь шаблон слетит?
Я вроде нашел как убрать в шаблоне, в typography нашел и поменял "block" на "none". Такой вариант приемлем?
Код
label {
  display: block;
  margin-bottom: 5px;
}
И не могу понять в каком файле зафиксировать placeholder.
« Последнее редактирование: 26.09.2014, 16:57:30 от morethanfish »
*

motokraft

  • Завсегдатай
  • 1326
  • 72 / 13
Re: Форма обратной связи
« Ответ #10 : 26.09.2014, 16:59:26 »
В этом подсказать не могу,
...
*

aspidy

  • Завсегдатай
  • 1008
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
Re: Форма обратной связи
« Ответ #11 : 26.09.2014, 17:20:41 »
День добрый.
Пытаюсь изменить форму обратной связи, необходимо засунуть внутрь полей эти подписи, отмеченные стрелкой. Подсказки кривые вообще убрать. Хочется форму сделать компактнее и симпатичнее. Сложно ли? Что необходимо подправить?

Код
<div class="control-group">
                <div class="control-label"><label id="jform_contact_name-lbl" for="jform_contact_name" class="hasTooltip required" title="" data-original-title="<strong>Имя</strong><br />Ваше имя">
Имя<span class="star">&nbsp;*</span></label></div>
                <div class="controls"><input type="text" name="jform[contact_name]" id="jform_contact_name" value="" class="required" size="30" required="required" aria-required="true"></div>
            </div>
http://prntscr.com/4qfet0

Править нужно несколько файлов пример под спойлером
Спойлер
[свернуть]
Мелкий ремонт. skype poisk-plus
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #12 : 26.09.2014, 17:42:54 »
Joomla изучаю пару дней. Что-то тяжело такие махинации даются)
*

aspidy

  • Завсегдатай
  • 1008
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
Re: Форма обратной связи
« Ответ #13 : 26.09.2014, 18:04:31 »
Joomla изучаю пару дней. Что-то тяжело такие махинации даются)
Если пару дней лучше ничего не меняйте
Мелкий ремонт. skype poisk-plus
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Форма обратной связи
« Ответ #14 : 26.09.2014, 18:18:36 »
И не могу понять в каком файле зафиксировать placeholder.
Что значит зафиксировать ?
Почитайте
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #15 : 26.09.2014, 18:51:13 »
Что значит зафиксировать ?
Почитайте

Ну я это понял, в визуальном редакторе все получается, но не знаю в какой файл засунуть, чтобы изменения сохранились.
« Последнее редактирование: 26.09.2014, 18:54:23 от morethanfish »
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Форма обратной связи
« Ответ #16 : 26.09.2014, 19:07:16 »
но не знаю в какой файл засунуть, чтобы изменения сохранились.
в тот код который у вас в первом сообщении
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #17 : 26.09.2014, 19:12:39 »
в тот код который у вас в первом сообщении
Я ж и говорю, в Developer Tools оно не сохраняет, вот и спрашиваю как сохранить иначе.
*

aspidy

  • Завсегдатай
  • 1008
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
Re: Форма обратной связи
« Ответ #18 : 27.09.2014, 05:57:10 »
Я ж и говорю, в Developer Tools оно не сохраняет, вот и спрашиваю как сохранить иначе.
В блокноте ручками
Мелкий ремонт. skype poisk-plus
*

morethanfish

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Форма обратной связи
« Ответ #19 : 27.09.2014, 17:30:28 »
В блокноте ручками
Какой-то определенный файл? Или новый создавать необходимо?
*

aspidy

  • Завсегдатай
  • 1008
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
Re: Форма обратной связи
« Ответ #20 : 27.09.2014, 19:23:36 »
Какой-то определенный файл? Или новый создавать необходимо?
Я же вам дал список файлов в примере. Девушка убирала название темы в форме. Есть компоненты форм с конструктором можно менять поля как хотите. Пример http://demo.clubby.kz/index.php/besplatnye-rasshireniya/besplatnye-komponenty/9-komponent-formy-obratnoj-svyazi-chronoforms
Мелкий ремонт. skype poisk-plus
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Форма выпадающего меню

Автор Игарь

Ответов: 3
Просмотров: 697
Последний ответ 02.05.2020, 15:41:13
от Игарь
Как вызвать стандартную форму обратной связи в модальном окне bootstrap 3?

Автор Konstantin124

Ответов: 10
Просмотров: 5644
Последний ответ 23.04.2019, 05:49:18
от RTEagle
Форма заказа с помощью uikit

Автор saschka

Ответов: 2
Просмотров: 932
Последний ответ 10.04.2018, 08:53:43
от saschka
Права доступа и форма добавления статей

Автор natsk2

Ответов: 0
Просмотров: 802
Последний ответ 28.02.2018, 19:41:45
от natsk2
Отредактировать стандартную форму обратной связи в контакте

Автор SynergyIT

Ответов: 5
Просмотров: 1657
Последний ответ 09.11.2017, 16:59:54
от SynergyIT