Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 475 Просмотров
*

burunduchok

  • Захожу иногда
  • 106
  • 8 / 0
Мистификация с ajax
« : 28.03.2023, 00:51:06 »
Здравствуйте.
Joomla 4.2.9.
Есть 2 плагина с одинаковым названием aaextension (чисто для удобства, чтобы были в листинге ftp первыми) в директориях content и system.
В каждом плагине есть функция:
Код
public function onAjaxAaextension() { /*бла-бла-бла*/ }
Вызываю функцию в плагине из content:
Код
https://DOMAIN/index.php?option=com_ajax&group=content&plugin=aaextension&format=json&task=order&in1=create_sitemap&7c5c01fde211fc8a0ccea5797a9194f8=1
(in1=create_sitemap чисто чтобы в функцию напихать разный функционал)
А отрабатывает функция плагина из system(!)
WTF?
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: Мистификация с ajax
« Ответ #1 : 28.03.2023, 08:48:44 »
Параметр group нужен только для импорта плагинов указанной группы. Чтоб система знала о них. Это если вы используете нестандартные группы или пишете консольный скрипт. Вот как это выглядит внутри:
Код
	$group      = $input->get('group', 'ajax');
JPluginHelper::importPlugin($group);

Но группы system и content Joomla импортируются автоматически, поэтому срабатывает первый совпадающий обработчик события. Поменяйте плагины местами (очередность) в списке плагинов, чтоб первым вызывался другой.

group вовсе не заставляет систему брать плагин из какой-то конкретной группы.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

burunduchok

  • Захожу иногда
  • 106
  • 8 / 0
Re: Мистификация с ajax
« Ответ #2 : 28.03.2023, 10:34:46 »
Параметр group нужен только для импорта плагинов указанной группы. Чтоб система знала о них. Это если вы используете нестандартные группы или пишете консольный скрипт. Вот как это выглядит внутри:
Код
	$group      = $input->get('group', 'ajax');
JPluginHelper::importPlugin($group);

Но группы system и content Joomla импортируются автоматически, поэтому срабатывает первый совпадающий обработчик события. Поменяйте плагины местами (очередность) в списке плагинов, чтоб первым вызывался другой.

group вовсе не заставляет систему брать плагин из какой-то конкретной группы.
Вряд ли хорошая идея менять плагины местами если в каждом из них задействована обработка AJAX запросов.
Не вариант и "засовывать" функционал в один плагин.
Остается лишь вариант переименовать свои плагины.
Спасибо за подсказку.
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: Мистификация с ajax
« Ответ #3 : 28.03.2023, 10:41:44 »
Остается лишь вариант переименовать свои плагины.
Что так категорично? Добавьте в плагин проверку параметра group (или другого) и пусть сам проверяет - ему ли принадлежит запрос.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка error: ajax Loading error: error

Автор Zegeberg

Ответов: 0
Просмотров: 471
Последний ответ 14.11.2023, 16:32:47
от Zegeberg
ajax в модуле. Too few arguments to function

Автор denism300

Ответов: 3
Просмотров: 1027
Последний ответ 25.12.2022, 00:04:58
от NewUsers