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

sitelook

  • Новичок
  • 6
  • 0 / 0
Добрый день.   Joomla 3.2.3, шаблон самописный. При включении кэширования  (стандартное/файл, плагин включен)  обращение к  пункту  меню контакты ( категория контакты>> контакт), как локально так и удаленно, происходит вот такая лажа:Fatal error: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "JCategoryNode" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/d/dimagu/interconsult/public_html/modules/mod_articles_categories/mod_articles_categories.php on line 29   Все остальное работает нормально. При отключенном кэшировании, с контактами, тоже-всё нормально. Каюсь, PHP, увы. Подскажите пожалуйста, может проблема  в шаблоне, что-то не подключено…
 <?php defined('_JEXEC') or die;
JHtml::_('bootstrap.framework');
JHtmlBootstrap::loadCss(false);
$doc = JFactory::getDocument();
$doc->addStyleSheet('/templates/blank_j3/css/bootstrap.min.css');
?>
<!DOCTYPE html>
<html>
   <head>
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <jdoc:include type="head" />   
   </head>
   <body>
…………………………………………
Изначально делал на bootstrap 3, после обнаружения ошибки переподключил шаблон на родной bootstrap 2.
http://demo2.sitelook.info/
*

Siber

  • Захожу иногда
  • 150
  • 9 / 0
Попробуйте плагин кеширования поставить последним по порядку в менеджере плагинов.
*

sitelook

  • Новичок
  • 6
  • 0 / 0
Спасибо, нет, не помогает к сожалению.
*

sitelook

  • Новичок
  • 6
  • 0 / 0
Погуглил –похоже это распространенный баг,  - только выбор  отдельного контакта пунктом меню, при включенном кэше, sometime приводит к данной ошибке. Если выводить список контактов, или избранный контакт – ошибки нет. Собираются поправить. Тему можно закрывать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Исчез компонент 'Поля' из меню в админке

Автор goga_pgasovav

Ответов: 2
Просмотров: 1358
Последний ответ 23.12.2024, 22:31:21
от goga_pgasovav
После обновления до Joomla 3.7 в админке в меню "Компоненты" пропали пункты

Автор lolitma3

Ответов: 39
Просмотров: 13180
Последний ответ 15.06.2023, 11:55:16
от Victor333
Перешел с PHP 7.4 на PHP 8.1 и получаю на сайте ошибку

Автор cher68

Ответов: 3
Просмотров: 1310
Последний ответ 03.02.2023, 20:18:30
от beliyadm
Вывод поля поиска первым пунктом в меню

Автор Mick_20

Ответов: 3
Просмотров: 1021
Последний ответ 03.02.2023, 13:02:46
от Mick_20
Текст меню выходит за границы меню.

Автор 7733039

Ответов: 1
Просмотров: 1428
Последний ответ 05.08.2022, 16:32:00
от marksetter