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

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Уже сделал простенький шаблон, хочу использовать на нескольких сайтах. И вот только теперь задумался...

В "templateDetails.xml" у меня несколько полей с типом textarea, в которых текст или небольшой код:
 
  • альт для img логотипа
  • информация об авторских правах
  • код кнопки "наверх"
  • даже код счётчика посещаемости


В index.php читаю эти параметры так: $this->params->get('metrika')

Это очень удобно!
Сделал так потому, что  в дефолтном Protostar похожее уже есть, а в студийных шаблонах - это вообще наверное в каждом!

Но может есть у такого подхода какие-то минусы? Поделитесь пожалуйста опытом!
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
В index.php читаю эти параметры так: $this->params->get('metrika')
если текст
Код: php
htmlspecialchars($this->params->get('metrika'), ENT_COMPAT, 'UTF-8'
// флаг см. - http://php.net/manual/ru/function.htmlspecialchars.php

код в параметрах хранить не надо
Веб-разработка: заказ. Только новая разработка.
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
если текст
Код: php
htmlspecialchars($this->params->get('metrika'), ENT_COMPAT, 'UTF-8'

Спасибо!

Цитировать
код в параметрах хранить не надо

А почему?

Или, если это например, не основной код счётчика, а только информер от него?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Лучше через
Цитировать
addScriptDeclaration/addCustomTag
в index.php. Зачем усложнять?
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Хотелось какого-то удобства. Чтоб через админку повставлять то, что ставится почти везде: метрику там, кнопки поделиться...

Понял, что не стоит.
Но почему - я должен ведь узнать.

Из базы данных будет код информера от метрики, или вставлен прям в php - в чём отличия. Не обязательно "метрика", но в частности...
Использовать можно например для разных языков разные копии шаблона, или для разных пунктов меню (не даром же в админке есть кнопка "Дублировать")

Для всех ответ на данный вопрос видимо очевиден. Но я только начинаю разбираться, растолкуйте пожалуйста!
« Последнее редактирование: 24.01.2016, 05:28:05 от Театрал »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
А что мешает написать модуль или пакет модулей со всеми этими плюшками? Есть модули и плагины для вставки кастомного кода кстатии
интернет-блог: http://websiteprog.ru
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Но ведь и модуль будет хранить этот код в базе данных...

Есть какая-то шутка:

- Мама, почему нельзя переходить дорогу на красный свет?
- А что мешает тебе перейти на зелёный, сынок?

Не в обиду, так вспомнилось просто.  ;)
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Но ведь и модуль будет хранить этот код в базе данных...

Скорее в хелпере модуля.

Код
Есть какая-то шутка:

- Мама, почему нельзя переходить дорогу на красный свет?
- А что мешает тебе перейти на зелёный, сынок?

Не в обиду, так вспомнилось просто.  Wink

Хранить код в базе можно, а можно ещё и разметку HTML там хранить. Ну если хотите совсем-совсем "контемпорари", Театрал, храните в базе данных XML. :)
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Ну, не надо, так не надо. Что я в самом деле...

Всем спасибо!
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Да ладно вам, Театрал, не принимайте близко к сердцу. Хранить JavaScript код и разметку в базе - это нормально. Например, com_content так устроен. В материале могут присутствовать как инлайновые скрипты, так и HTML, даже scoped CSS. Только злоупотреблять этим не рекомендуется - смысл таков :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Использование своего шаблона блога категории

Автор PashkaRu

Ответов: 30
Просмотров: 7981
Последний ответ 10.07.2024, 14:30:47
от mag_num83
Компиляция шаблона для j3 из Dreamweaver cc2020

Автор Ykitero

Ответов: 0
Просмотров: 2240
Последний ответ 10.01.2023, 09:05:11
от Ykitero
Перенос шаблона статического сайта на Joomla3

Автор bartes

Ответов: 4
Просмотров: 2739
Последний ответ 22.12.2020, 21:58:26
от bartes
При установке самописного шаблона выдает ошибку

Автор НатальяSM

Ответов: 3
Просмотров: 2187
Последний ответ 01.04.2016, 13:05:53
от НатальяSM
Вывод картинки в настройках шаблона

Автор Taatshi

Ответов: 1
Просмотров: 2073
Последний ответ 11.02.2016, 17:12:46
от Grigory S.