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

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Здравствуйте!

Создал дополнительны шаблон для com_content и разместил в /templates/gk_creativity/html/com_content/article/mytemplate.php

Затем выбрал его в настройках нужной мне статьи



Однако статья отображается с использованием шаблона /templates/gk_creativity/html/com_content/article/default.php

Что происходит?
« Последнее редактирование: 11.04.2014, 22:01:14 от Shustry »
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
кеш чистили?
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Может вы на статью пункт меню назначили?
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
кеш чистили?

Разумеется, неоднократно.
Интересно, что если создать шаблон непосредственно в папке /components/com_content/views/article/tmpl/default2.php
и он его не видит, видит только "Из компонента: по умолчанию"


*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Может вы на статью пункт меню назначили?

Верно.

Нельзя?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Можно. Если осторожно. ^-^

Первый раз про такое слышу... В K2 таких проблем не наблюдается...

Цитировать
Теперь копируете нужную xml-ку и com_content и переделываете для своего шаблона

Тут не понял... Откуда брать XML и куда копировать?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Приоритетность выбора шаблона у Joomla такая:
1. Шаблон пункта меню
2. Шаблон, выбранный в опциях материала.
3. Шаблон, выбранный в глобальных настройках ком_контента.
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Приоритетность выбора шаблона у Joomla такая:
1. Шаблон пункта меню
2. Шаблон, выбранный в опциях материала.
3. Шаблон, выбранный в глобальных настройках ком_контента.

Вас понял. Но в настройках пункта меню нет возможности указать шаблон.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Первый раз про такое слышу... В K2 таких проблем не наблюдается...
Тут не понял... Откуда брать XML и куда копировать?

Всю жизнь так было, начиная с версии 1,6.

Из components\com_content\views\название_вида\tmpl в templates\название_шаблона\html\com_content\название_вида
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Вас понял. Но в настройках пункта меню нет возможности указать шаблон.

Вот в том-то и беда. Тут механизм по-другому работает. Вы создаёте другую xml-ку, называете её, например, «мой формат блога статей», и выбираете уже его как тип пункта меню. В самих опциях пункта меню выбора шаблона нет.
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Всю жизнь так было, начиная с версии 1,6.

Из components\com_content\views\название_вида\tmpl в templates\название_шаблона\html\com_content\название_вида

Скопировать нужно default.xml?
Надо что-то править, переименовывать?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
<layout title="Мой блог" option="TPL_TPLNAME_SOME_OPTION">

Не забудьте только в UTF8 без BOM сохранить.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3


Только файл будет по-другому же называцо.
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Вот в том-то и беда. Тут механизм по-другому работает. Вы создаёте другую xml-ку, называете её, например, «мой формат блога статей», и выбираете уже его как тип пункта меню. В самих опциях пункта меню выбора шаблона нет.

Чуток начал понимать.
Я скопировал default.xml в папку /templates/gk_creativity/html/com_content/article/default2.xml
назвал его default.xml

Появился новый тип -



Понятно, что надо его переименовать.

Но стаьтя по прежнему отображается со старым шаблоном.

Может нужно создать новую папку в целом:
/templates/gk_creativity/html/com_content/article2/default2.xml


*

Shustry

  • Moderator
  • 6434
  • 745 / 3
У вас альтернативный шаблон статьи тоже называется default2?
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Структура такая тогда будет:
/templates/gk_creativity/html/com_content/article/default2.php
/templates/gk_creativity/html/com_content/article/default2.xml
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
<layout title="Мой блог" option="TPL_TPLNAME_SOME_OPTION">

Не забудьте только в UTF8 без BOM сохранить.

Круто заработало ))

Короче, для каждого нового шаблона, копировать одноименный XML.
Спасибо.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Пожалуйста. В целом да, нужно просто взять за правило хорошего тона: создаёте альтернативный шаблон какого-либо вида компонента, создавайте сразу xml-ку, вдруг пригодится.
*

romagromov

  • Давно я тут
  • 692
  • 9 / 3
Пожалуйста. В целом да, нужно просто взять за правило хорошего тона: создаёте альтернативный шаблон какого-либо вида компонента, создавайте сразу xml-ку, вдруг пригодится.

Дело в том, что всю дорогу делал альтернативные шаблоны либо для модулей, либо для категорий K2 - XML нигде не требуется. Поэтому и споткнулся на com_content.
« Последнее редактирование: 11.04.2014, 22:56:22 от romagromov »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать свой шаблон quickstart?

Автор saiskyi

Ответов: 3
Просмотров: 6720
Последний ответ 19.02.2020, 19:29:01
от Bozhkov2
Как настроить шаблон?

Автор tromba

Ответов: 2
Просмотров: 4182
Последний ответ 15.08.2018, 15:29:56
от tromba
[Решено] Сохранить не удалось из-за ошибки: JTableMenu: :_getNode не выполнен (j 1.6)

Автор bhakta

Ответов: 19
Просмотров: 22367
Последний ответ 05.04.2018, 23:23:38
от foast
Как загрузить шаблон, и сделать его только для одной страницы?

Автор Ирина Поехали

Ответов: 5
Просмотров: 2155
Последний ответ 05.06.2017, 21:15:42
от effrit
Как вставить рекламу в мобильный шаблон ja_edenite?

Автор gorbi_U

Ответов: 3
Просмотров: 1925
Последний ответ 02.06.2017, 08:43:26
от gorbi_U