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

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Стоит задача перенаправить зарегистрированных пользователей с главной страницы на другой пункт меню. Т.е. зарегистрированным пользователям не должна показываться главная страница, а при попытке перейти в корень сайта они должны быть перенаправлены на заранее указанный пункт меню. Полагаю, что это должен быть плагин. Подскажите на какое событие и в какой группе он должен срабатывать и какие передаются в него параметры.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Полагаю, имхо, это должен быть роутер, лежащий рядом с index.php.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Вставьте в index.php вашего шблона сразу после defined('_JEXEC') or die;
Код: php-brief
if (JFactory::getUser()->id && JURI::current() == JURI::base()) {
JFactory::getApplication()->redirect(JURI::root().'you_page');
return;
}
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Вставьте в index.php вашего шблона сразу после defined('_JEXEC') or die;
Код: php-brief
if (JFactory::getUser()->id && JURI::current() == JURI::base()) {
JFactory::getApplication()->redirect(JURI::root().'you_page');
return;
}
Даже еще проще: роутер, встроенный в шаблон :)
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Вставьте в index.php вашего шблона сразу после defined('_JEXEC') or die;
Код: php-brief
if (JFactory::getUser()->id && JURI::current() == JURI::base()) {
JFactory::getApplication()->redirect(JURI::root().'you_page');
return;
}

А как чтобы плагином?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Так пропишите это в плагин, в onUserLogin
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться