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

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Всем привет!
Пробую написать простейший модуль самостоятельно, и застопорился на моменте вывода данных из БД.

mod_simple.php
[свернуть]
mod_simple.xml (привожу лишь <config> для простоты восприятия кода
[свернуть]
helper.php
[свернуть]
tmpl/default.php
[свернуть]

После установки модуля и его публикации всё работает как надо: данные из БД выводятся, в настройках есть оба поля с дефолтными значениями.
НО! Когда я изменяю значения в полях и сохраняю, то модуль всё равно выводит дефолтные значение полей, а не сохранённые в БД.
Данные сохраняются, проверено.

Что я делаю не так?  !
Заранее спасибо всем отозвавшимся!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
здра.
так параметры же хранятся в json-виде в отдельном поле, все вместе.
для их извлечения и записи не нужны отдельные запросы в бд.

*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
вот это
Код
query="SELECT kokoko FROM #__simple" />
я так понимаю, тупо игнорируется, т.к. создается json-поле вида "текст" и данные хранятся в нем
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
effrit, намекаете, что в helper.php запрос к БД не нужен?
Я лишь руководствовался стандартным мануалом docs.joomla.org по созданию простого модуля.
Но там, на мой взгляд, пример не самый удачный. И вот как раз вывод данных организован в хелпере запросом к БД, а в шаблоне уже выдача полученных данных.

Как бы вы это сделали?  ::)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
так это от задачи зависит.
я же ссылку кидал тебе на генератор плагина, там же есть для модуля.
генерируешь модуль с двумя полями нужного типа и все, задача решена  ;)
просто не понимаю, чего в итоге надо.
если просто ввод данных через админку, то запросы самостоятельно прописывать не нужно, а код XML будет без всяких query
короче, генерируешь модуль и смотришь код )
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
если хочешь данные хранить в своих отдельных полях, тогда и вывод из них надо делать своим запросом в базу.
стандартный вывод из params берет данные из ОДНОГО поля базы, распарсивая json.
открой в PMA таблицу modules и для своего модуля в поле params посмотри
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Во как! Я и не подумал, что можно сгенерить модуль там же, где и плагин)
Да и хотелось самому разобраться, собтственно потому и начал...
Задача банальная. Сохранять в полях текст, и выводить с нужным шаблоном в нужной позиции.
Спасибо за советы. Попробую все способы.
*

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
Fedor Vlasenko, спасибо, меня туда effrit и направил.
Но я хотел сам разобраться в том, что делал, и таки разобрался )
Во-первых, брал данные совсем из другой таблицы БД, во-вторых, запросы к БД действительно не нужны были.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести модуль в модуле

Автор jimka

Ответов: 2
Просмотров: 736
Последний ответ 18.04.2025, 15:39:36
от fbr
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 4688
Последний ответ 21.02.2024, 11:03:08
от saynez
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 1277
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Модуль Похожие метки – только более ранние статьи!

Автор Gerostrat

Ответов: 6
Просмотров: 976
Последний ответ 24.08.2023, 21:56:09
от sivers
Модуль для опросов Advanced Poll не работает

Автор Escander

Ответов: 15
Просмотров: 2027
Последний ответ 02.06.2023, 20:10:22
от kzalmatuy1