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

jesus

  • Захожу иногда
  • 127
  • 15 / 1
  • фронтенд ищет бэкенда для совместного творчества
Друзья, такая тема. Есть хороший такой шаблон http://demo.joomshaper.com/2018/helixultimate/, как blank template для простых проектов вполне себе норм. Так вот, в этом шаблоне, как и во многих современных есть mega-menu, а в этом меню есть такое поле Badge — это значит любой текст из этого поля выведется рядом с названием пункта меню, в виде значка типа NEW или HOT.

Если создать пункт меню Корзина и в поле Badge вывести количество товара в корзине, то получится просто отличное универсальное решение по выводу количества товаров над значком корзины.
Вроде количество товара в корзине выводится как-то так:
Код
<?php echo count($cart->products)?>
Но как вывести количество товара в Badge динамически? Чувствую, что решение на поверхности, но знаний не хватает.
« Последнее редактирование: 07.06.2019, 02:36:06 от jesus »
Спасибо за freeware!
Если вы готовы небезвозмездно ответить на мой вопрос, с удовольствием рассмотрю предложение.
Ищу адекватного партнёра (программиста) по разработке сайтов на Joomla. Обеспечу ненапряжный поток задач.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
но что то пошло не так... :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jesus

  • Захожу иногда
  • 127
  • 15 / 1
  • фронтенд ищет бэкенда для совместного творчества
но что то пошло не так... :)
:laugh: свет выключили
Спасибо за freeware!
Если вы готовы небезвозмездно ответить на мой вопрос, с удовольствием рассмотрю предложение.
Ищу адекватного партнёра (программиста) по разработке сайтов на Joomla. Обеспечу ненапряжный поток задач.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
как blank template для простых проектов вполне себе норм
сравнение на троечку, ибо встроенный билдер - это что-то в противоположной стороне от "blank"  ;D

что до темы - выводите корзину стандартным модулем где-нибудь на странице, а потом забирайте количество из неё через JS и вставляйте, куда нужно.
1-2 строки на jQuery
сам модуль можно невидимым сделать.

но вообще стараются корзину в шапке держать, чтоб глаза мозолила, так что не знаю, на сколько такое её измельчение целесообразно
*

jesus

  • Захожу иногда
  • 127
  • 15 / 1
  • фронтенд ищет бэкенда для совместного творчества
сравнение на троечку, ибо встроенный билдер - это что-то в противоположной стороне от "blank"  ;D
За-то конечному потребителю очень даже удобно потом пользоваться.
Цитировать
что до темы - выводите корзину стандартным модулем где-нибудь на странице, а потом забирайте количество из неё через JS и вставляйте, куда нужно.
1-2 строки на jQuery
сам модуль можно невидимым сделать.
Суть ясна, благодарю за совет!
Цитировать
но вообще стараются корзину в шапке держать, чтоб глаза мозолила, так что не знаю, на сколько такое её измельчение целесообразно
Так вот, как раз, в самой что ни на есть шапке эта корзина и будет, в главном меню, а если ещё и sticky-меню, так вообще шикарно.
Спасибо за freeware!
Если вы готовы небезвозмездно ответить на мой вопрос, с удовольствием рассмотрю предложение.
Ищу адекватного партнёра (программиста) по разработке сайтов на Joomla. Обеспечу ненапряжный поток задач.
*

Ragnarok

  • Захожу иногда
  • 64
  • 1 / 0
Подскажите, пожалуйста, а можно ли как-то забрать значение количества из корзины и выводить после рендеринга страницы через AJAX? Если да, то куда "копать"?

З.Ы: всех с Днем Веб-мастера!  *DRINK*
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
забрать значение количества из корзины и выводить после рендеринга страницы через AJAX?
так а вам после рендеринга страницы, или через AJAX? что надо то?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Ragnarok

  • Захожу иногда
  • 64
  • 1 / 0
так а вам после рендеринга страницы, или через AJAX? что надо то?
Извиняюсь, не так описал задачу, наверное.
Ситуация следующая:
- количество товара в корзине кешируется
- на сколько я понимаю, если количество товара в корзине будет выводиться через AJAX, то оно кешироваться не будет. Верно?
- как можно программно вывести количество товара через AJAX? И можно ли? Взять, например, текущее количество товара из БД и вывести в определенном месте шаблона
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
теперь понятнее. это все можно сделать, но это нужно на стороне сервера обработчик писать, плагин например, который будет отдавать нужные вам данные. ну и плюс сам JavaScript, который эти данные после загрузки запросит, а потом расфасует по нужным полкам.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Technic

  • Захожу иногда
  • 194
  • 7 / 0
а можно вопрос?
Зачем такие заморочки?
поставьте модуль корзины в позицию рядом с меню
стилями все поправьте и никаких заморочек
*

Ragnarok

  • Захожу иногда
  • 64
  • 1 / 0
теперь понятнее. это все можно сделать, но это нужно на стороне сервера обработчик писать, плагин например, который будет отдавать нужные вам данные. ну и плюс сам JavaScript, который эти данные после загрузки запросит, а потом расфасует по нужным полкам.
Спасибо большое!
*

jesus

  • Захожу иногда
  • 127
  • 15 / 1
  • фронтенд ищет бэкенда для совместного творчества
Совместно с уважаемым effrit было найдено решение задачи из первого поста. Решение конкретно для фреймворка Helix Ultimate, но может пригодится и в других случаях.
1. Делаем пункт меню типа JoomSopping > Корзина
2. В настройках пункта меню, во вкладке Mega Menu, в поле Badge вписать любую цифру, кроме 0, иначе сам бэйжд не отобразиться.
3. Указать для этого пункта меню уникальный класс (CSS-класс ссылки). Я поставил cart_qt
4. Публикуем модуль корзины на всех страницах, чтобы брать из него количество товаров. Модуль скрываем если нужно, например display:none;
5. Вот такой код нужно вставить в поле пользовательского скрипта или в файл скриптов:
Код
jQuery(function(){
var qt=parseInt(jQuery('#jshop_quantity_products').html());
if(!qt) qt=0;
jQuery('.cart_qt .sp-menu-badge-right').html(qt);
});
Должно заработать как-то так:

С прогрессивным кэшированием не заработало.
« Последнее редактирование: 12.03.2020, 18:51:02 от jesus »
Спасибо за freeware!
Если вы готовы небезвозмездно ответить на мой вопрос, с удовольствием рассмотрю предложение.
Ищу адекватного партнёра (программиста) по разработке сайтов на Joomla. Обеспечу ненапряжный поток задач.
*

Mister Shadow

  • Захожу иногда
  • 94
  • 1 / 0
Для YOOtheme PRO не смог сделать...  >:(
Воспользовался советом Technic и всё получилось. Поставил меню рядом с модулем и через CSS всё подправил.
« Последнее редактирование: 30.12.2021, 10:36:17 от Mister Shadow »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 847
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav
WT On fly image handler изображения товара JoomShopping в webp на лету

Автор sergeytolkachyov

Ответов: 13
Просмотров: 3573
Последний ответ 29.01.2025, 20:38:38
от sergeytolkachyov
Видео с Youtube вместо картинки на карточке товара

Автор ksena

Ответов: 35
Просмотров: 8795
Последний ответ 08.10.2024, 04:26:36
от kit2m2
Условие для кол-ва товара больше нуля

Автор kik84

Ответов: 3
Просмотров: 1083
Последний ответ 16.02.2024, 13:33:24
от kit2m2
Убрать модуль в карточке товара JoomShopping

Автор alexkraym

Ответов: 35
Просмотров: 5205
Последний ответ 21.08.2023, 07:17:53
от delchev