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

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте.

Почитав эту ветку, решил править сайт/includes/router.php, чтобы ссылки вместо "сайт/component/virtuemart/категория/товар" стали "сайт/catalog/категория/товар". В итоге по пути типа сайт/catalog/категория открывается представление как у пункта меню с типом "Главная" VirtueMart, т.е. список всех категорий, плюс самые популярные с последними посещёнными товарами, а товары самой категории не выводятся.
Вот что, на что правил:
1. в функции _parseSefRoute код
Код
		if (count($segments) > 1 && $segments[0] == 'component')
{
$vars['option'] = 'com_'.$segments[1];
$vars['Itemid'] = null;
$route = implode('/', array_slice($segments, 2));
}
заменил на
Код
		if (count($segments) > 1 && $segments[0] == 'component'){
        $vars['option'] = 'com_'.$segments[1];
        $vars['Itemid'] = null;
$route = implode('/', array_slice($segments, 2));
}
elseif($segments[0]=='catalog'){
$vars['option'] = 'com_virtuemart';
        $vars['Itemid'] = null;
$route = implode('/', array_slice($segments, 2));
}
2. в функции _buildSefRoute код
Код
		if (!$built) {
$tmp = 'component/'.substr($query['option'], 4).'/'.$tmp;
}
заменил на
Код
		if (!$built) {
if(substr($query["option"], 4)!="virtuemart")
$tmp = 'component/'.substr($query["option"], 4).'/'.$tmp;
else $tmp = 'catalog/'.$tmp;
}

Может у кого есть знание о том, как заставить отображаться содержимое категории по пути сайт/catalog/категория? Либо может вы знаете какая развилка в коде решает, запускать построение содержимого категории товаров или нет?

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как получить правильный SEF url категории JoomGallery из JRoute?

Автор sergeytolkachyov

Ответов: 1
Просмотров: 3947
Последний ответ 26.10.2019, 23:48:41
от sergeytolkachyov
SEF url кнопки купить в категории у товаров

Автор orexov_m

Ответов: 0
Просмотров: 1497
Последний ответ 16.01.2017, 11:21:12
от orexov_m
SEF url кнопки купить в категории товаров

Автор orexov_m

Ответов: 0
Просмотров: 1641
Последний ответ 16.01.2017, 11:19:33
от orexov_m
SEF url кнопки купить в категории товаров

Автор orexov_m

Ответов: 0
Просмотров: 1365
Последний ответ 16.01.2017, 11:04:04
от orexov_m
Узнать ID текущей категории и материала при включенном SEF

Автор back

Ответов: 13
Просмотров: 14885
Последний ответ 11.01.2017, 12:46:50
от beliyadm