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

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
в файле ps_product.php найти
Код
function get_neighbor_products( $product_id ) {
global $perm, $orderby, $my, $auth, $keyword, $DescOrderBy, $limit, $limitstart, $search_limiter, $search_op,
$category_id, $manufacturer_id, $vm_mainframe, $vmInputFilter, $product_type_id, $keyword1, $keyword2;
$limit = 2000;
        $limitstart = 0;
if( !empty( $_SESSION['last_browse_parameters'])) {
foreach( $_SESSION['last_browse_parameters'] as $paramName => $paramValue ) {
$$paramName = $paramValue;
}
}
$db = new ps_DB();
$db_browse = new ps_DB();
include( PAGEPATH . 'shop_browse_queries.php' );
должно быть
Код
function get_neighbor_products( $product_id ) {
global $perm, $orderby, $my, $auth, $keyword, $DescOrderBy, $limit, $limitstart, $search_limiter, $search_op,
$category_id, $manufacturer_id, $vm_mainframe, $vmInputFilter, $product_type_id, $keyword1, $keyword2;
$limit = 2000;
        $limitstart = 0;
include( PAGEPATH . 'shop_browse_queries.php' );
if( !empty( $_SESSION['last_browse_parameters'])) {
foreach( $_SESSION['last_browse_parameters'] as $paramName => $paramValue ) {
$$paramName = $paramValue;
}
}
$db = new ps_DB();
$db_browse = new ps_DB();
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
beagler, сделал как тут написано. VM1.1.8
Для примера:
-родительская категория
 -дочерняя категория 1
 -дочерняя категория 2
При переходе из родительской категории в товары ссылки на следующие и предыдущие товары появилась и корректно работает. Но при переходе из дочерних, родных категории к товарам ссылки на следующие и предыдущие товары появляются только для первых товаров. Если оставить по умолчанию, как выше в коде, то работают ссылки для дочерних, родных категории.
Изначальный код по умолчанию:
Код
	function get_neighbor_products( $product_id ) {
global $perm, $orderby, $my, $auth, $keyword, $DescOrderBy, $limit, $limitstart, $search_limiter, $search_op,
$category_id, $manufacturer_id, $vm_mainframe, $vmInputFilter, $product_type_id, $keyword1, $keyword2;
$limit = 2000;
        $limitstart = 0;

if( !empty( $_SESSION['last_browse_parameters'])) {
foreach( $_SESSION['last_browse_parameters'] as $paramName => $paramValue ) {
$$paramName = $paramValue;
}
}
$db = new ps_DB();
$db_browse = new ps_DB();
if (defined('VM_ALLOW_EXTENDED_CLASSES') && defined('VM_THEMEPATH') && VM_ALLOW_EXTENDED_CLASSES && file_exists(VM_THEMEPATH.'user_class/shop_browse_queries.php')) {
// Load the user-defined shop_browse_queries file
include_once(VM_THEMEPATH.'user_class/shop_browse_queries.php');
} else {
// Otherwise we have to use the original file
include( PAGEPATH . 'shop_browse_queries.php' );
}
Код после изменения:
Код
	function get_neighbor_products( $product_id ) {
global $perm, $orderby, $my, $auth, $keyword, $DescOrderBy, $limit, $limitstart, $search_limiter, $search_op,
$category_id, $manufacturer_id, $vm_mainframe, $vmInputFilter, $product_type_id, $keyword1, $keyword2;
$limit = 2000;
        $limitstart = 0;
if (defined('VM_ALLOW_EXTENDED_CLASSES') && defined('VM_THEMEPATH') && VM_ALLOW_EXTENDED_CLASSES && file_exists(VM_THEMEPATH.'user_class/shop_browse_queries.php')) {
// Load the user-defined shop_browse_queries file
include_once(VM_THEMEPATH.'user_class/shop_browse_queries.php');
} else {
// Otherwise we have to use the original file
include( PAGEPATH . 'shop_browse_queries.php' );
}
if( !empty( $_SESSION['last_browse_parameters'])) {
foreach( $_SESSION['last_browse_parameters'] as $paramName => $paramValue ) {
$$paramName = $paramValue;
}
}
$db = new ps_DB();
$db_browse = new ps_DB();
« Последнее редактирование: 07.11.2011, 18:24:44 от EmDmAl »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться