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

Denis_

  • Захожу иногда
  • 111
  • 0 / 0
Почему не работает htaccess?
« : 01.08.2013, 16:36:40 »
Прописываю в htaccess
Код
Redirect 301 /catalog?page=shop.product_details&product_id=421&category_id=7 http://site.ru/alef-dent
Но вместо редиректа отображается ошибка 404.
При этом работает
Код
Redirect 301 /articles/131-djeti-i-karijes http://site.ru/articles/deti-i-karies
У меня почти 1000 страниц поменяла свой url, которые я прописал в htaccess.
Как сделать, чтобы он заработал?
*

konoden

  • Захожу иногда
  • 326
  • 40 / 0
  • Поиск смысла жизни. Выполнено 15%...
Re: Почему не работает htaccess??
« Ответ #1 : 01.08.2013, 17:26:28 »
Я надеюсь, Вы вместо site.ru указываете настоящий адрес Вашего сайта?
И mod_rewrite включен?
*

Denis_

  • Захожу иногда
  • 111
  • 0 / 0
Re: Почему не работает htaccess?
« Ответ #2 : 01.08.2013, 18:14:41 »
Да, вместо site.ru мой сайт.
в phpinfo сервера хостинга mod_rewrite в Loaded Modules.
в .htaccess прописано
RewriteEngine On
RewriteBase /
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

Denis_

  • Захожу иногда
  • 111
  • 0 / 0
Re: Почему не работает htaccess?
« Ответ #4 : 01.08.2013, 18:27:21 »
Код
Options +FollowSymLinks
## Mod_rewrite in use.
RewriteEngine On
## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

#RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.


AddDefaultCharset utf-8
Action php5.3-script  /cgi-bin/php5.3.cgi
AddType php5.3-script .php
php_flag display_errors on
php_flag    display_startup_errors  on

вот мой .htaccess. сделал как сказал draff - не помогло
*

Denis_

  • Захожу иногда
  • 111
  • 0 / 0
Re: Почему не работает htaccess?
« Ответ #5 : 01.08.2013, 20:21:32 »
в phpinfo сервера mod_rewrite есть, но он ведь тоже должен отображатся в админке во вкладке "Информация о системе" -> информация о PHP? верно?
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Почему не работает htaccess?
« Ответ #6 : 01.08.2013, 21:27:37 »
Код
Redirect 301 /catalog?page=shop.product_details&product_id=421&category_id=7 http://site.ru/alef-dent
Но вместо редиректа отображается ошибка 404.

При этом работает
Код
Redirect 301 /articles/131-djeti-i-karijes http://site.ru/articles/deti-i-karies

Экранируйте точки и знаки вопроса
*

Denis_

  • Захожу иногда
  • 111
  • 0 / 0
Re: Почему не работает htaccess?
« Ответ #7 : 01.08.2013, 21:49:03 »
то есть так понимаю должно быть так: Redirect 301 /catalog\?page=shop\.product_details&product_id=421&category_id=7 http://site.ru/alef-dent
все равно 404
*

Denis_

  • Захожу иногда
  • 111
  • 0 / 0
Re: Почему не работает htaccess?
« Ответ #8 : 01.08.2013, 22:33:30 »
чуть-чуть продвинулся в данном вопросе. Прописываю:
Код
RewriteCond %{QUERY_STRING} ^page=shop.product_details&product_id=421&category_id=7$
RewriteRule ^catalog$ http://site.ru/alef [R=301,L]
Переходит на нужную мне страницу, только добавляется page=shop.product_details&product_id=421&category_id=7
и получается
Код
http://site.ru/alef?page=shop.product_details&product_id=421&category_id=7
а как убрать все что за "?"
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Re: Почему не работает htaccess??
« Ответ #9 : 01.08.2013, 22:40:09 »
чуть-чуть продвинулся в данном вопросе. Прописываю:
Код
RewriteCond %{QUERY_STRING} ^page=shop.product_details&product_id=421&category_id=7$
RewriteRule ^catalog$ http://site.ru/alef [R=301,L]

а как убрать все что за "?"


Добавьте в конце ?

RewriteRule ^catalog$ http://site.ru/alef? [R=301,L]
« Последнее редактирование: 01.08.2013, 22:43:40 от SDKiller »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему в админке Joomla 2.58 - у меня 16 админов показывает?

Автор dyalex

Ответов: 8
Просмотров: 4353
Последний ответ 09.12.2024, 23:36:51
от brat_ii
Не работает GTranslate модуль

Автор rapsila

Ответов: 19
Просмотров: 3204
Последний ответ 06.09.2022, 22:52:02
от rapsila
Не работает отправка почты

Автор Mick_20

Ответов: 12
Просмотров: 1638
Последний ответ 11.01.2022, 17:12:19
от befesol
Нужен редирект.htaccess для перенаправления с без id на id в url сайта

Автор MultiMatrix83

Ответов: 10
Просмотров: 1398
Последний ответ 19.10.2021, 18:28:04
от draff
В Google Chrome некорректно работает админка

Автор Dorotar

Ответов: 1
Просмотров: 1221
Последний ответ 09.02.2020, 10:49:15
от Dorotar