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

ac100

  • Новичок
  • 9
  • 0 / 0
Лишняя информация в url
« : 16.02.2017, 01:48:01 »
Всем доброго времени суток. Столкнулся с такой проблемой, в url стала появляться лишняя информация. Без нее страница прекрасно работает.
Выглядит это так:
Цитировать
site.ru/catalog/zamki-dlya-sumok/?task=show&catid=11
Следует отображать как
Цитировать
site.ru/catalog/zamki-dlya-sumok/
. Ссылка формируется так:
Код
 *DRINK*<a href="<?php echo JRoute::_("index.php?option=com_catalog&task=show&catid=$cat->id&Itemid=140",false);?>" class="category<?php if ($i%3==2){ echo " cat3";}?>"> 
Помогите пожалуйста, что и где нужно изменить что бы лишнее в url не попадало?
         
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Лишняя информация в url
« Ответ #1 : 16.02.2017, 08:24:24 »
лишняя информация. Без нее страница прекрасно работает         
А вы уверены? Изменить просто: удалите все, что по-вашему лишнее.  Только проверьте еще раз, чтобы потом не создавать тему типа "Хелп! Помогите победить Джумалу! Вчера еще работала, а сегодня перестала".
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Лишняя информация в url
« Ответ #2 : 16.02.2017, 09:39:27 »
вероятно, в пункте меню указаны все нужные параметры. если так, то действительно просто удалить из JRoute::_
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ac100

  • Новичок
  • 9
  • 0 / 0
Re: Лишняя информация в url
« Ответ #3 : 16.02.2017, 17:58:53 »
Пробовал удалять часть часть кода после ::Jroute. Тогда пропадает часть ссылки т.е. если убираю catid то исчезает /zamki-dlya-sumok/
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Лишняя информация в url
« Ответ #4 : 17.02.2017, 15:42:41 »
Пробовал удалять часть часть кода после ::Jroute. Тогда пропадает часть ссылки т.е. если убираю catid то исчезает /zamki-dlya-sumok/
Значит, плохо написан router. Откуда взяли этот компонент com_catalog?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ac100

  • Новичок
  • 9
  • 0 / 0
Re: Лишняя информация в url
« Ответ #5 : 19.02.2017, 16:17:54 »
Эмм... Не знаю. Так до меня уже было. А где искать router?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Лишняя информация в url
« Ответ #6 : 19.02.2017, 20:00:04 »
site.ru/components/com_catalog/router.php
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ac100

  • Новичок
  • 9
  • 0 / 0
Re: Лишняя информация в url
« Ответ #7 : 20.02.2017, 03:03:17 »
Отлично, я его  нашел. В нем вроде бы ничего нет напоминающего замену одних частей url на другие. Если нужно, могу код скинуть всего файла
*

ac100

  • Новичок
  • 9
  • 0 / 0
Re: Лишняя информация в url
« Ответ #8 : 04.03.2017, 02:51:38 »
Я нашел эти злосчастные строки. Вот они. Не вижу причины всех бед. Может вы знаете?

Код: php
function CatalogBuildRoute($query)
{
//print_r($query);
/*$sql = "SELECT `alias` FROM `#__catalog_categories` WHERE `id` = '".$query["catid"]."' AND `published` = '1'";
$db->setQuery($sql);*/
$segments = array();
//print_r($query); die();
$segments[0] = getAlias('categories', $query["catid"]); //1
$segments[1] = getAlias('items', $query['id']); //3
//$segments[2] = $query['task'];
//print_r($segments);
unset($query['task']);
unset($query['catid']);
unset($query['id']);
    return $segments;
}
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Лишняя информация в url
« Ответ #9 : 04.03.2017, 09:52:53 »
я тоже не вижу.
Код
unset($query['task']);
unset($query['catid']);
как раз и говорит о том, что будут task и catid удалены. а вы точно уверены, что сюда попадает управление когда ссылка формируется?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ac100

  • Новичок
  • 9
  • 0 / 0
Re: Лишняя информация в url
« Ответ #10 : 04.03.2017, 14:21:47 »
Ну файл route.php лежит в этой же папке. Глянул что приходит в $quer и $segments, выглядит это так. Array ( [option] => com_catalog [catid] => 12 [id] => 2253 [Itemid] => 140 ) и Array (
  • => pryajki_metallicheskie [1] => pryajka-dlya-remnya-2252 )
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться