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

xandeadx

  • Новичок
  • 7
  • 0 / 0
Задача организовать вывод подменю в отдельном блоке: т.е допустим пользователь переходит в раздел О компании, слева, под основным меню, появляется подменю:

  • Наши заслуги
  • Наши партнёры
  • История

Если пользователь переходит в раздел Услуги, слева, под основным меню, появляется подменю:

  • Услуга 1
  • Услуга 2
  • Услуга 3

Как сделал я:

1. Создал главное меню вида:

О компании
-- Наши заслуги
-- Наши партнёры
-- История
Услуги
-- Услуга 1
-- Услуга 2
-- Услуга 3

2. В менеджере модулей, у Главное меню прописал Последний уровень = 1.

3. Создал новый модуль Подменю у "О компании" с настройками: Начальный уровень = 1, Меню = Выбрать из списка (выбрал соответствующие пункты).

4. Аналогично поступил с модулем Подменю у "Услуги".

Всё ок.

А теперь внимание вопрос :) — можно ли как то автоматизировать процесс, т.е отказаться от создание модулей для каждого пункта основного меню, или может есть другой, более простой, способ добиться результата.
*

Вязной

  • Захожу иногда
  • 195
  • 19 / 0
  • Просто Вова
А вам и не нужно для каждого пункта модуль создавать. Достаточно 2 модулей - главное меню и подпункты.
*

xandeadx

  • Новичок
  • 7
  • 0 / 0
а где тогда прописать логику, чтобы подпункты отображались из текущего пункта главного меню?
*

xandeadx

  • Новичок
  • 7
  • 0 / 0
всё, понял, спасибо за совет! создал модуль Подменю с настройками Начальный уровень = 1, Меню = Выбрать из списка (выбрал все разделы и подразделы)
*

wdesign

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Добрый день, мучительно пытаюсь сделать вышеописанное, но ни как не получается!
Могли бы расписать по подробнее, где и как что делать? Заранее огромное спасибо!
*

xandeadx

  • Новичок
  • 7
  • 0 / 0
Добрый день, мучительно пытаюсь сделать вышеописанное, но ни как не получается!
Могли бы расписать по подробнее, где и как что делать? Заранее огромное спасибо!
http://xandeadx.ru/blog/joomla/51
*

wdesign

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Спасибо огромнейшее!
*

wdesign

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Вы случайно не знаете еще, как убрать отображение пункта меню «Главная»? Тема об этом
*

xandeadx

  • Новичок
  • 7
  • 0 / 0
удалить из меню через редактор меню
*

wdesign

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Просто какой-то пункт меню должен быть по умолчанию и выводить на главную, у меня это логотип, пункт Главная вообще не нужен
*

xandeadx

  • Новичок
  • 7
  • 0 / 0
тогда самый простой вариант это скрыть пункт с помощью CSS - li.item1 {display:none;}
*

xandeadx

  • Новичок
  • 7
  • 0 / 0
вот нашёл инструкцию, работает

1. Make a copy of your main menu inside the Module Manager and call it something else.
2. In the original main menu remove all your menu items except HOME.
3. Now that you have only HOME in the main menu, you can go to the module manager, select main menu and on the right side of the screen you select NONE, so the main menu will not be shown on any of your sites. Just make sure that it is still PUBLISHED.
4. In the copy of your main menu, delete HOME and use this menu to be displayed on all your sites.
*

Roberta

  • Захожу иногда
  • 182
  • 0 / 0
Подскажите как реализовать следующее  ( на примере первого поста)

Мне нужно, чтобы подменю услуга1, услуга2,  услуга3 выводилось не только на странице услуги, но и на Главной (при этом у "главной" есть свое подменю) тот есть получается что там тудет выводиться два подменю

как этот реализовать
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

убрать из меню заголовки h3

Автор nexter

Ответов: 19
Просмотров: 7962
Последний ответ 03.02.2020, 18:49:47
от durte
При добавлении нового пункта меню не отображается содержимое

Автор Denko

Ответов: 2
Просмотров: 3354
Последний ответ 16.01.2020, 18:40:55
от Denko
Не нажимается пункт меню на мобильной версии

Автор Sensession

Ответов: 7
Просмотров: 4885
Последний ответ 04.01.2020, 16:45:27
от xpank
Не отображаются пункты в меню

Автор physic

Ответов: 20
Просмотров: 23083
Последний ответ 20.09.2019, 16:54:01
от beliyadm
DJ Mega Menu разобраться с настройкой подменю

Автор Pene4ek

Ответов: 0
Просмотров: 3096
Последний ответ 14.07.2019, 18:28:45
от Pene4ek