Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 3113 Просмотров
*

PoD-Stas

  • Новичок
  • 6
  • 0 / 0
Всюду дописывается itemid
« : 28.12.2011, 18:59:59 »
В общем, у меня проблемка кой-какая.
Есть связка Joomla 1.5.23 + VirtueMart 1.1.9 (какой черт дернул заюзать, диву даюсь - 100500тыщ файлов, в половине случаев не совсем понятно откуда в файл приходит значение переменной, почти полное отсутствие ООП, ну да ладно...)

В общем, суть проблемы следущая:
Ссылки абсолютно во всех модулях получают последним параметром - itemid=1, и над модулем, который должен выводиться, появляется главная страница, а потом, собственно, и сам модуль.

http://сцайт/index.php?option=com_virtuemart&page=shop.product_details&flypage=flypage.tpl&product_id=83&category_id=30&Itemid=1 (то, что жирное - без него идеально все работает)

В одном модуле ручками написал свой парсинг УРЛов, но в 30! модулях все перписывать, не имея, при этом 100% гарантии, что все будет работать - стремно)
Прошу Вашей помощи...
Мб можно где-то сделать проверку именно на Itemid=1, а другие не трогать? Просто уже натыкал кучу хаков в разные файлы, не представляю, как буду обновляться на след. версии Joomla/виртмарта... =(
« Последнее редактирование: 28.12.2011, 21:05:21 от PoD-Stas »
*

PoD-Stas

  • Новичок
  • 6
  • 0 / 0
Re: Всюду дописывается itemid
« Ответ #1 : 29.12.2011, 23:17:37 »
Никто не поможет? ((
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Всюду дописывается itemid
« Ответ #2 : 29.12.2011, 23:22:12 »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

PoD-Stas

  • Новичок
  • 6
  • 0 / 0
Re: Всюду дописывается itemid
« Ответ #3 : 29.12.2011, 23:32:04 »
Это ясно. Но из какого бы пункта меню я не перешел, дописывается itemid=1... Я вырезал из пары файлов виртмарта генерацию ссылок по сессии, там все ок работает, но... очень много но :-) хотелось бы глобально отключить генерацию именно itemid=1, скажите куда, хотя бы копать, я там условие сам запилю...)))
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Всюду дописывается itemid
« Ответ #4 : 29.12.2011, 23:33:56 »
itemid это не сессия, это идентификатор пункта меню, если нет ни одного пункта меню, ведущего на этот компонент\страницу, то по умолчанию он будет равен 1, то есть главной странице
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

PoD-Stas

  • Новичок
  • 6
  • 0 / 0
Re: Всюду дописывается itemid
« Ответ #5 : 29.12.2011, 23:43:20 »
получается, я сделал глупость, когда ссылки из главного меню делал, как "Внешние ссылки"?
Пробовал делать "специальные" ссылки на материалы компонента виртмарт, но путь неправильно, т.е. вообще не отображался)
*

PoD-Stas

  • Новичок
  • 6
  • 0 / 0
Re: Всюду дописывается itemid
« Ответ #6 : 29.12.2011, 23:44:24 »
Под "путем" я имел ввиду хлебные крошки. ^^
« Последнее редактирование: 29.12.2011, 23:49:55 от PoD-Stas »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Всюду дописывается itemid
« Ответ #7 : 29.12.2011, 23:52:46 »
получается, я сделал глупость, когда ссылки из главного меню делал, как "Внешние ссылки"?
да
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

PoD-Stas

  • Новичок
  • 6
  • 0 / 0
Re: Всюду дописывается itemid
« Ответ #8 : 30.12.2011, 00:25:12 »
в общем, разобрался. Спасибо Вам за помощь.
Все равно идиотская это система - завязывать все на меню :-) Первый и последний мой проект на Joomla... =0
*

1investa

  • Осваиваюсь на форуме
  • 46
  • 4 / 0
  • В движении
Re: Всюду дописывается itemid
« Ответ #9 : 17.10.2012, 20:52:21 »
Никто не поможет? ((

У меня в свое время от "умных ответов" по этой теме и прочего хлама, чуть крышу не сорвало.... И как всегда все гениальное просто:

Как быстро удалить   из ссылки ?Itemid=

1.   Открываем в корне сайта ФАЙЛ .htacces
2.   И в конец файла прописываем такие строки
RewriteCond %{QUERY_STRING} ^(.*)Itemid=$
RewriteRule ^(.*) /$1?%1 [R=404,L]


АНАЛОГИЧНО  поступаем и с ?Treeid=

RewriteCond %{QUERY_STRING} ^(.*)Treeid=$
RewriteRule ^(.*) /$1?%1 [R=404,L]

В итоге при вводе нашей ссылки с любым из этих окончаний видим следующую картину

Not Found

The requested URL ВАШ САЙТ was not found on this server.
Apache/2 Server at ВАШ САЙТ.ru Port 80

P.S.  Да кстати, если есть приондексированные ссылки с этими окончаниями - не забываем идити в панель Яндеск.Вебмастер -> Удалить URL и соответственно удалять весь хлам.
Также не забываем пинговать новые и чистенькие ссылки.


*

VsVoland

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
  • Путь рождается под ногами идущего.
Re: Всюду дописывается itemid
« Ответ #10 : 26.03.2013, 17:17:34 »
itemid это не сессия, это идентификатор пункта меню, если нет ни одного пункта меню, ведущего на этот компонент\страницу, то по умолчанию он будет равен 1, то есть главной странице
beliyadm, у меня ситуация немного другая. Я создаю новую категорию товаров  в VirtueMart, и соответственно появляется ссылка в меню, которое отображает ссылки на все категории товаров. И почему-то к новым ссылкам этого меню прицепляется itemid главной страницы (itemid=8)... в результате, те модули которые должны быть только на главной, отображаются и на последних по времени создания категориях. Никак не могу понять где проблема и от чего зависит это itemid.
Можешь подсказать как это исправить? или, хотя бы, куда копать...

все прежние ссылки этого меню имеют itemid разные, но отличные от itemid главной (25 и 16, у главной 8 ).
*

VsVoland

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
  • Путь рождается под ногами идущего.
Re: Всюду дописывается itemid
« Ответ #11 : 26.03.2013, 17:19:24 »
beliyadm, у меня ситуация немного другая. Я создаю новую категорию товаров  в VirtueMart, и соответственно появляется ссылка в меню, которое отображает ссылки на все категории товаров. И почему-то к новым ссылкам этого меню прицепляется itemid главной страницы (itemid=8)... в результате, те модули которые должны быть только на главной, отображаются и на последних по времени создания категориях. Никак не могу понять где проблема и от чего зависит это itemid.
Можешь подсказать как это исправить? или, хотя бы, куда копать...

все прежние ссылки этого меню имеют itemid разные, но отличные от itemid главной (25 и 16, у главной \8).

хотел исправить ошибку в сообщении, а нечайно нажал "цитировать" - удалить сообщение не могу. Модераторы, удалите его пожалуйста :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вирус на сайте дописывается в js-скрипты

Автор Akksimo

Ответов: 2
Просмотров: 2298
Последний ответ 04.05.2013, 16:59:22
от wishlight
Itemid: Внутренние страницы воспринимаются как главная...

Автор inko_gnito

Ответов: 4
Просмотров: 1352
Последний ответ 16.05.2011, 21:07:41
от inko_gnito
Привязка цвета фона к itemId

Автор arsenkot

Ответов: 2
Просмотров: 1511
Последний ответ 05.02.2011, 00:27:55
от arsenkot
Как определить Itemid категории в результатах стандартного поиска

Автор yuri-it

Ответов: 3
Просмотров: 1533
Последний ответ 18.01.2011, 14:39:33
от yuri-it
Itemid в своих компонентах

Автор alexok

Ответов: 7
Просмотров: 1806
Последний ответ 22.07.2010, 08:12:35
от alexok