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

Alex_19

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Добрый день. Есть код для VirtueMart
Код
$virtuemart_manufacturer = JRequest::getVar('virtuemart_manufacturer_id');
if(empty($virtuemart_manufacturer)){
  echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children));
}
Поскольку JRequest не работает в Joomla 4 нужно заменит на getInput. У самого не получается, постоянно вылазят разные ошибки.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код: php
use \Joomla\CMS\Factory;

$app = Factory::getApplication();

if(!$id = $app->input->getInt('virtuemart_manufacturer_id'))
{
    echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children));
}
Если переменная $id дальше в коде больше ни как не используется, то можно сделать так
Код: php
if(!$app->input->getInt('virtuemart_manufacturer_id'))
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Alex_19

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Код: php
use \Joomla\CMS\Factory;

$app = Factory::getApplication();

if(!$id = $app->input->getInt('virtuemart_manufacturer_id'))
{
    echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children));
}
Если переменная $id дальше в коде больше ни как не используется, то можно сделать так
Код: php
if(!$app->input->getInt('virtuemart_manufacturer_id'))
Большое спасибо за быстрый ответ. К сожалению не работает. Появляется ошибка syntax error, unexpected 'use' (T_USE)
Если есть возможность, посмотрите пожалуйста сам файл. Сторока 54
Код
echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children));
Нужно заменить на
Код
$virtuemart_manufacturer = JRequest::getVar('virtuemart_manufacturer_id');
if(empty($virtuemart_manufacturer)){
  echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children));
}
Файл по ссылке https://drive.google.com/file/d/1bQlAf13cwbgF7Re9j0fPL0KJHiLsDjd6/view?usp=sharing
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Появляется ошибка syntax error, unexpected 'use' (T_USE)
use надо указывать в начале файла!
Не стоит пытаться запустить версию VirtueMart которая не предназначена для Joomla 4
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Alex_19

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
$app = Factory::getApplication();

if(!$id = $app->input->getInt('virtuemart_manufacturer_id'))
{
    echo ShopFunctionsF::renderVmSubLayout('categories',array('categories'=>$this->category->children));
}
Огромное спасибо! Все получилось.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Собрать сайт на Joomla на студийном шаблоне YooTheme

Автор Panda

Ответов: 6
Просмотров: 5922
Последний ответ 15.08.2025, 08:26:37
от wishlight
Необходимо сделать интеграцию Joomla 5 с файлами Excel и SVG

Автор Lemonez

Ответов: 1
Просмотров: 1149
Последний ответ 08.02.2025, 22:26:09
от Lemonez
Натяжка шаблона Joomla

Автор ss_spb

Ответов: 1
Просмотров: 1357
Последний ответ 27.11.2024, 08:14:53
от kit2m2
Написать JS для вывода Joomla alert в модальном окне Uikit

Автор Lemonez

Ответов: 0
Просмотров: 1777
Последний ответ 26.11.2024, 17:18:57
от Lemonez
Новый функционал для компонента для Joomla 5

Автор Region93

Ответов: 3
Просмотров: 1528
Последний ответ 05.11.2024, 16:10:05
от Region93