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

androv77

  • Захожу иногда
  • 80
  • 5 / 0
Решил перенести свои старые сайты на J2.5 c бекапов на локальный серевер XAMPP.

Сперва забыл пароли в админку и небыло доступа к БД.

Сделал воостановление паролей через PHP Myadmin. В бд сделал SQL-запрос:

UPDATE `jos_users`
SET `password` = MD5('new_password')
WHERE `username` = 'admin'

jos_  <---- префикс вашей БД
new_password <---- ваш новый пароль.

После переноса сразу не видели БД.
В configeration.php изменил имя пользователя и убрал пароль к БД.
public $user = 'root';
public $password = '';

Так сайты почти заработали.

1. Первый сайт выдал:
Не удается получить доступ к сайту
Не удается найти DNS-адрес сервера site.ru
ERR_NAME_NOT_RESOLVED
В configeration.php прописывал сайт в public $live_site = ''; - непомогло.
и не заходит в админку все равно, даже не пишет что пароль неверен.

2. Второй сайт заработал но с ошибкой:
На самом сайте вместо материлов отображается строка:
You are not authorised to view this resource.
Неотображаются некоторые модули.

В админку на втором сайте зашел, НО
При входе в любой модуль ошибка:
You are not permitted to use that link to directly access that page (#31).

При входе в материал ошибка:
Check-out failed with the following error: The user checking out does not match the user who checked out the item.
You are not permitted to use that link to directly access that page (#175).

И так при входе в любое меню в админке.

Прошу помощи, у кого было что-то подобное?
Может при импорте БД нужно кодировку другую указывать или еще что?

С J3 и 4 таких проблем не было еще. Переносил с на хостинг и обратно без проблем.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
*

androv77

  • Захожу иногда
  • 80
  • 5 / 0
а что у вас с версиями PHP?
Долго не отвечал, были проблемы.
Версия PHP 7.4.29
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Прошу помощи в востановлении доступа к сайту

Автор GlebZu

Ответов: 2
Просмотров: 964
Последний ответ 19.11.2021, 13:09:41
от draff
На сайте появились ошибки

Автор Hocotih

Ответов: 0
Просмотров: 843
Последний ответ 13.05.2021, 10:24:20
от Hocotih
Ошибки после восстановления БД

Автор Arvaro

Ответов: 1
Просмотров: 1123
Последний ответ 15.01.2020, 17:15:17
от SeBun
Ошибки на карточке товара Virtuamart

Автор navara1978

Ответов: 10
Просмотров: 1493
Последний ответ 09.07.2019, 11:40:23
от navara1978
Перенос данных с движка на другой движ

Автор exger

Ответов: 0
Просмотров: 1206
Последний ответ 05.12.2018, 01:00:53
от exger