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

abrodski

  • Захожу иногда
  • 100
  • 0 / 0
Здравствуйте!

У меня в магазине установлена основная валюта - это доллары США. И дополнительная - это российские рубли. У меня магазин на английском, так что я надеюсь, что я правильно перевожу (я дам названия на обоих языках). Я в "Shop" - "Vendor" ("Магазин" - "Продавец"), там где валюта ("Currency") выбрал доллары (их я поэтому называю основной валютой), а под этим в "List of accepted currencies" ("Списке допустимых валют") там у меня стоят обе валюты (т.е. и доллары, и рубли). У меня два типа покупателей. Иностранцы и россияне. С иностранцами проблем нет. Они видят цены в долларах. А для россиян я не могу показать цены в рублях. Когда я создаю товар (Product), то то, что я продаю россиянам (у меня для всех РАЗНЫЕ товары. Т.е я НЕ продаю одно и то же для всех!) я выставляю в рублях, где "Cost price", а ниже для "Base price" и "Final price" я выставляю "Apply no rule" (видимо, не применять никаких правил). А в "Группе покупателей" (Shopper group) я выбираю "Доступно для всех" ("Available for all"). Лично я никаких групп покупателей не создавал. Там у меня (видимо, по умолчанию) стоят две группы. Одна это "Default Shopper Group" (Группа покупателей по умолчанию) и "Guest Shopper Group" (Гостевая группа покупателей). И в результате, россияне видят цены в долларах (после конвертации по курсу).
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
а как определяешь, что вот этот покупатель - россиянин, а тот - американец?
*

abrodski

  • Захожу иногда
  • 100
  • 0 / 0
а как определяешь, что вот этот покупатель - россиянин, а тот - американец?

Очень просто! Мне это вообще не нужно делать, в принципе. Я же написал "у меня для всех РАЗНЫЕ товары. Т.е я НЕ продаю одно и то же для всех!" Вообще то, это даже не товары, а УСЛУГИ. Но в контексте моего вопроса, какая разница? К примеру, я продаю два разговорника, один для англоязычных туристов в России, а другой - для русскоязычных туристов в Америке. Как мне разделять, кто что купит? А ЗАЧЕМ мне это делать? Они то САМИ знают про себя кто они, я надеюсь. Если Вы русскоязычный россиянин, Вы же знаете, что Вы не англоговорящий американец! Зачем люди будут покупать то, что им не нужно?
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
вот я зашел на сайт, какие товары ты мне покажешь? я американец или русский?
*

abrodski

  • Захожу иногда
  • 100
  • 0 / 0
вот я зашел на сайт, какие товары ты мне покажешь? я американец или русский?

Forget about it! Буду всем показывать доллары. Вместо рубля будет $0.02
Кому надо, тот поймет.
Просто те товары, которые предназначены для одной группы покупателей, будут невидимы для другой. В свойствах товара выбираешь shopper group. Не идеально, но лучше, чем ничего! Я же сам регю своих шопперов, а не просто так заходит в магазин кто угодно. Магазин то закрытого типа.
Но это неважно. Так, к общему сведению. Чтоб закрыть дискуссию ни о чем.
*

Litop

  • Захожу иногда
  • 52
  • 4 / 0
  • Joomla не использую! В Virtuemart не шарю!
Forget about it! Буду всем показывать доллары. Вместо рубля будет $0.02
Кому надо, тот поймет.
Просто те товары, которые предназначены для одной группы покупателей, будут невидимы для другой. В свойствах товара выбираешь shopper group. Не идеально, но лучше, чем ничего! Я же сам регю своих шопперов, а не просто так заходит в магазин кто угодно. Магазин то закрытого типа.
Но это неважно. Так, к общему сведению. Чтоб закрыть дискуссию ни о чем.

А почему не вывести цены в двух валютах сразу? Это ведь просто и каждый будет видеть то, что ему нужно
*

abrodski

  • Захожу иногда
  • 100
  • 0 / 0
А почему не вывести цены в двух валютах сразу? Это ведь просто и каждый будет видеть то, что ему нужно

Сразу в двух не получается, т.к. в магазине есть валюта по умолчанию. Но можно поставить модуль переключателя валют. Но, в моем конкретном случае, это ни к чему особо.
*

Litop

  • Захожу иногда
  • 52
  • 4 / 0
  • Joomla не использую! В Virtuemart не шарю!
Сразу в двух не получается, т.к. в магазине есть валюта по умолчанию. Но можно поставить модуль переключателя валют. Но, в моем конкретном случае, это ни к чему особо.

Я подобную задачу еже решал. Выводил в двух валютах и получилось как то так 

в моём случае этого вполне достаточно для понимания клиента.
Выводил так - в категории
Код
<div class="ИМЯ БЛОКА"><?php echo '<b>'.$this->currency->roundForDisplay($product->prices['salesPrice'],КОД ВАЛЮТЫ,1,false).' ИМЯ ВАЛЮТЫ</b>';?>
</div>
а вот в карточке товара так
Код
<div class="ИМЯ БЛОКА"><?php echo '<b>'.$this->currency->roundForDisplay($this->product->prices['salesPrice'],КОД ВАЛЮТЫ,1,false).' ИМЯ ВАЛЮТЫ</b>';?></div>

Основная задача была убрать с сайта кнопку селектора валют, так как всем просто лень пользоваться и максимально уменьшить количество дурацких вопросов  к менеджерам - А сколько Это в $ или в грн?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод категорий в результате поиска

Автор vladimirwk

Ответов: 3
Просмотров: 2395
Последний ответ 19.12.2020, 18:34:06
от gartes
Сопутствующие товары

Автор Wargoth

Ответов: 2
Просмотров: 1548
Последний ответ 25.08.2020, 14:49:06
от Wargoth
Как удалить дочерние товары в карточке товара VM 2?

Автор zeus07

Ответов: 0
Просмотров: 1065
Последний ответ 12.05.2020, 14:51:39
от zeus07
Custom Filters pro - не показывает дочерние товары при выборе фильтра

Автор djed9

Ответов: 0
Просмотров: 885
Последний ответ 01.04.2020, 11:41:43
от djed9
Модуль категорий VM - несколько категорий сразу

Автор liberator

Ответов: 6
Просмотров: 894
Последний ответ 08.02.2020, 14:26:11
от liberator