Новости 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 Ответов
  • 630 Просмотров
*

Alex_gs

  • Захожу иногда
  • 152
  • 1 / 0
Joomshop + модули от SmartAddons. Но это не принципиально.
Модули выводят картинки товаров, забирая их из кэша.
На страничке несколько модулей с разными опциями вывода товаров

Вот фрагмент кода одного из модулей, который генерит картинку:
<div class="item-img-info">
   <a href="<?php echo $item->link;?>" <?php echo JsSlider::parseTarget($params->get('target'));?>>
      <?php $img = JsSlider::getAImage($item, $params); echo JsSlider::imageTag($img);?>
                              </a>


Вот фрагмент HTML, который генерит модуль:

<div class="item-img-info">
   <a href="/tgshop/hats/tg-buff" >
      <img src="/administrator/cache/resized/bb179fbef2d9321b67998bfa00d899e4.jpg" alt="Бафф "Тарасова Гора"" title="Бафф "Тарасова Гора""/>                              </a>
                           </div>


Картинка, ссылка на которую указано, реально присутствует на хосте.
Т.е. все правильно
Если почистить кэш броузера, то при открытии страницы ни одна картинка не выводится.
Так происходит со всеми картинками, данных модулей на странице.

Но!
Если вручную, при помощи правой кнопочки мыши, открыть любую  картинку в новой вкладке, она открывается. И потом при перезагрузке страницы все картинки всех модулей нормально загружаются и все работает.
Ситуация и на компе и на андроиде.

Вроде все в коде правильно, но почему так происходит?
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
а папка /administrator/ у вас никак не защищена?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Alex_gs

  • Захожу иногда
  • 152
  • 1 / 0
Все папки пути - 755
*

Alex_gs

  • Захожу иногда
  • 152
  • 1 / 0
Убрал функцию формирования тэга img - echo JsSlider::imageTag($img); Не стал в ней разбираться, т.к. в ней вызовы других функций плюс расширение класса. В-общем поленился.
Подозрения были на то, что в конце тега зачем-то стоит символ "/" слэш. Возможно он и есть проблема.

Вывел обычным способом
echo '<img src="'.$img[src].'" alt="'.$img[alt].'" title="'.$img[title].'" >';
 
Все заработало.
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
Скорее всего в той функции было формирование миниатюр (если они использовались).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Alex_gs

  • Захожу иногда
  • 152
  • 1 / 0
Скорее всего вы правы. На я пожертвовал, т.к. магазин маленький, как приложение к основному сайту. Продажа атрибутики мотофестиваля. Товаров до 100 будет, скорость не важна особо. Размер фоток отредактировал CSSкой.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Работа а админке 5 минут потом выкидывает

Автор August

Ответов: 13
Просмотров: 1536
Последний ответ 06.03.2025, 10:39:54
от web1
На главную выводится кнопка добавить комментарий, как убрать?

Автор pilotgta

Ответов: 6
Просмотров: 3175
Последний ответ 21.09.2023, 15:32:35
от bugmenot
php код в новом модуле комментируется и не выводится

Автор makalex86

Ответов: 3
Просмотров: 783
Последний ответ 31.03.2023, 09:19:30
от sivers