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

user2008june

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Здравствуйте!
Застрял с сайтом Объявлений  на Joomla 3. Подскажите, пжл, где искать.
Есть 2 модуля Joomla :
1)   Модуль карт Яндекс  для вывода объявлений;
2)   Модуль объявлений – выводится содержание объявления.
Для модуля объявлений все данные в php файле извлекается из массива инструкцией:
$params->get()
Такая – же инструкция для модуля карт Яндекс тоже используется для извлечения данных:
$params->get()
Только разница в том, что массивы подключены разные для разных модулей.
Как использовать (или подключить) массив данных, подключённый в модуле вывода объявления так, чтобы этот массив использовать в модуле вывода на картах?
Т.е. в модуле карт уже будет использоваться два массива.
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
прочитать параметры модуля из БД (таблица #__extensions, поле params) распаковать с помощью json_decode
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

anatol81n

  • Захожу иногда
  • 82
  • 2 / 0
Т
Как использовать (или подключить) массив данных, подключённый в модуле вывода объявления так, чтобы этот массив использовать в модуле вывода на картах?
это неправильно, у каждого модуля свои параметры..
но если очень нужно то примерно так:
jimport('joomla.application.module.helper');
$module = JModuleHelper::getModuleById($module_id);
$params = json_decode($module->params);
*

user2008june

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
"но если очень нужно то примерно так:
jimport('joomla.application.module.helper');
$module = JModuleHelper::getModuleById($module_id);
$params = json_decode($module->params);"

Notice: Undefined variable: module_93 in ..
В template нужного модуля - выдаёт ошибку.
ID модуля пробовал и из  Базы данных и из админки.

Может нужно подключить класс, который использует первый модуль, ко второму модулю. И потом этот класс станет доступен во втором модуле?

Детали.
Есть сайт:

arendaofisa.by

На главной странице в модуле объявления выводиться площадь помещения.
Нужно эту же площадь вывести на странице

arendaofisa.by/karta

- на карте Яндекс в баллоне объявления.
Как в template Яндекс карты закинуть дополнительное поле - площадь помещения?
Компонент DJ-Classifieds.

« Последнее редактирование: 13.12.2021, 09:23:13 от user2008june »
*

anatol81n

  • Захожу иногда
  • 82
  • 2 / 0
На главной странице в модуле объявления выводиться площадь помещения.
Нужно эту же площадь вывести на странице
и при чем тут параметры модуля, площадь же не в параметрах хранится?
*

user2008june

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Поздравьте меня!
С испугу выучил php. Всё получилось. Площадь хранилась в массиве, который вычислялся в в функции (методе) класса модуля объявления items. Этот класс размещается в helper.php. Там ещё ссылка на библиотеку полей (fields). Эту библиотеку тоже нужно подключить. В итоге - массив из модуля Объявлений определился в модуле Карт. А там из него извлекаются площадь. Полезный урок - который можно использовать для вывода любых данных на карту.
*

anatol81n

  • Захожу иногда
  • 82
  • 2 / 0
С испугу выучил php
это достойно книги рекордов
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Разный редактор в материалах и модулях

Автор Zelyonkin

Ответов: 3
Просмотров: 827
Последний ответ 24.07.2022, 09:44:52
от KKAAZZOO
Вывести материалы в разных позициях шаблона

Автор Alex_gs

Ответов: 4
Просмотров: 848
Последний ответ 14.12.2021, 23:37:54
от anatol81n
Список в изображениях в модулях

Автор a159cm

Ответов: 1
Просмотров: 1000
Последний ответ 02.06.2021, 10:12:44
от v42bis
Как реализовать: вставка словосочетаний на разных страницах?

Автор AndreN

Ответов: 4
Просмотров: 701
Последний ответ 05.05.2021, 01:04:54
от gartes
Метки Joomla в модулях (tags)

Автор goga_pgasovav

Ответов: 3
Просмотров: 721
Последний ответ 08.10.2020, 11:14:23
от goga_pgasovav