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

johnsnow91

  • Новичок
  • 6
  • 0 / 0
Всем привет! Я новичок в Joomla, но приходится разрабатывать плагин доставки для VirtueMart. Мне уже помогли на этом форуме с подключением яваскрипта и я создал полноценную страницу настроек, но теперь возникла другая проблема. Как теперь получить эти настройки? Неужели только если в базу лезть напрямую? Я нашел, где они хранятся, но разве не должно быть какого-нибудь метода работы с настройками плагина?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
я создал полноценную страницу настроек
Ответьте пожалуйста для уточнения, вы же не создавали страницу для настроек плагина (она же и так есть)?

Я нашел, где они хранятся, но разве не должно быть какого-нибудь метода работы с настройками плагина?
Вот!
Код: php
$plugin = JPluginHelper::getPlugin('group', 'name');
$params = new JRegistry($plugin->params);
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
А если настройки нужны "внутри" самого плагина, то они доступны в конструкторе:
Код
    public function __construct(&$subject, $config){
        parent::__construct($subject, $config);
    }
$config->params - это json-строка.

Можно сделать вот так:
Код
    public function __construct(&$subject, $config){
        parent::__construct($subject, $config);
        $this->params = json_decode($config->params);
    }
и далее в любом методе плагина сможете получать настройки плагина из $this->params.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
А если настройки нужны "внутри" самого плагина, то они доступны в конструкторе:
Код
    public function __construct(&$subject, $config){
        parent::__construct($subject, $config);
    }
$config->params - это json-строка.

Можно сделать вот так:
Код
    public function __construct(&$subject, $config){
        parent::__construct($subject, $config);
        $this->params = json_decode($config->params);
    }
и далее в любом методе плагина сможете получать настройки плагина из $this->params.

Вы в каком веке живете, не надо такую херню писать, настройки плагина уже доступны в классе
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Какие именно настройки- собственно плагина, как расширения Joomla, или через конфиг VirtueMart, которые указываются в способе доставки ?
*

johnsnow91

  • Новичок
  • 6
  • 0 / 0
Какие именно настройки- собственно плагина, как расширения Joomla, или через конфиг VirtueMart, которые указываются в способе доставки ?

Я извиняюсь, очевидно предоставил недостаточно информации.
Во-первых мне нужны настройки службы доставки, которую я создал в VirtueMart. Да, страница настроек, условно уже была, я её лишь наполнили своими свойствами через манифест
Во-вторых, место где мне нужны настройки - файл обработчик AJAX, т.е. это отдельный файл.

Я смог вытащить из shopfunctions метод работы с моделью метода и выдернул таким вот образом:
Код
$m = VmModel::getModel('shipmentmethod');
$m->getShipment(<cid>)->shipment_params;
Это нормально или есть более "приличные", что ли, способы? Ещё я не могу найти, как получившуюся строку преобразовать в массив, ведь там не json,а просто строка
Код
<KEY>=<VALUE> | <KEY>=<VALUE>
« Последнее редактирование: 03.06.2020, 13:37:18 от johnsnow91 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Стоит ли ставить плагин rel="canonical" на Joomla 3

Автор azm1n

Ответов: 2
Просмотров: 746
Последний ответ 09.05.2025, 12:39:18
от azm1n
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 1051
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav
Проблема вебвизором в Яндекс метрике при использовании плагина jch optimize

Автор polezniy

Ответов: 32
Просмотров: 4193
Последний ответ 01.03.2024, 10:26:31
от Vastriet
Получить ошибку

Автор KevinSimon

Ответов: 0
Просмотров: 561
Последний ответ 22.09.2023, 15:20:21
от KevinSimon
Получить текущий номер страницы плагина "Разрыв страницы" (pagebreak)

Автор sertlan

Ответов: 1
Просмотров: 762
Последний ответ 12.06.2023, 18:14:09
от sertlan