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

Merl07

  • Новичок
  • 7
  • 0 / 0
Ошибка 404
« : 28.12.2022, 20:51:14 »
Здравствуйте все.
перевожу сайт на Joomla 4, и столкнулся с данной проблемой. Я не нашел ни одного расширения для борьбы с дублями страниц из тех которыми пользовался в Joomla 3. Для этой цели в Joomla 3 служил прекрасный компонент SEF Wizard, который решает в одном флаконе все проблемы дублей страниц в том числе и в пагинации. Поскольку мне не удалось найти ничего, что могло бы решить данные проблемы в Joomla 4, я решил попробовать переделать компонент SEF Wizard под новую Joomla. Ошибки возникали еще на стадии установки, их я исправил, потом пришло время настройки и включения компонента, и вот тут на сайте вылезла ошибка: Cannot access protected property Joomla\CMS\Menu\MenuItem::$params. Включив отладку системы, я нашел причину и место данной ошибки и сделал исправление. таким образом я исправил еще несколько ошибок. И вот теперь показались еще две ошибки: во первых пагинация работает не верно(ряд отображается правильно а ссылки где-то с 4 страницы начинают отставать на метке "4" ссылка ведет на 3 третью страницу) сама ссылка неправильно формируется https://test.loc/category/page-3.html это правильная ссылка https://teplo.loc/category.html/page-2 это то что получается. и при этом еще и 404 ошибка страница не найдена.
Включение отладки системы:
Если ошибка повторится, пожалуйста, обратитесь к администрации сайта.

    404 Страница не найдена

Call stack
#    Function                                                                                      Location
1    ()                                                                                              JROOT\libraries\src\Router\Router.php:153
2    Joomla\CMS\Router\Router->parse()                                              JROOT\libraries\src\Application\SiteApplication.php:736
3    Joomla\CMS\Application\SiteApplication->route()                      JROOT\libraries\src\Application\SiteApplication.php:224
4    Joomla\CMS\Application\SiteApplication->doExecute()              JROOT\libraries\src\Application\CMSApplication.php:294
5    Joomla\CMS\Application\CMSApplication->execute()                      JROOT\includes\app.php:61
6    require_once()                                                                              JROOT\index.php:32

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

marksetter

  • Завсегдатай
  • 1045
  • 40 / 0
Re: Ошибка 404
« Ответ #1 : 28.12.2022, 21:08:01 »
ну вам бы выложить плагин со своими исправлениями как минимум
индивидуальная помощь: @SetAlexx
*

Merl07

  • Новичок
  • 7
  • 0 / 0
Re: Ошибка 404
« Ответ #2 : 28.12.2022, 21:34:51 »
Вот даный компонент со всеми моими исправлениями
« Последнее редактирование: 10.01.2023, 20:21:42 от Merl07 »
*

Merl07

  • Новичок
  • 7
  • 0 / 0
Re: Ошибка 404
« Ответ #3 : 01.01.2023, 20:47:20 »
ну что никому не интересно? тогда напишите как вы решаете проблемы дублей страниц в 4 Joomla а также проблемы дублей страниц в пагинации....
« Последнее редактирование: 01.01.2023, 22:20:56 от Merl07 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка err_cache_miss

Автор geral

Ответов: 3
Просмотров: 17614
Последний ответ 01.10.2025, 07:15:51
от geral
Ошибка http 500 Whoops, looks like somethin после включение Отладки в настройках

Автор androv77

Ответов: 3
Просмотров: 858
Последний ответ 03.04.2025, 17:55:01
от azm1n
Ошибка при установке Joomla 5 на Open Server 6.0

Автор Mnojitell

Ответов: 5
Просмотров: 1228
Последний ответ 03.04.2025, 11:36:11
от Akeksandr
Ошибка Отсутствует поле "itemReviewed

Автор Zegeberg

Ответов: 3
Просмотров: 1192
Последний ответ 24.10.2024, 12:38:24
от Zegeberg
Ошибка An error has occurred

Автор THE KILLERS

Ответов: 15
Просмотров: 5818
Последний ответ 13.10.2024, 11:03:44
от Mick_20