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

Eddrock

  • Новичок
  • 4
  • 0 / 0
Как сделать сайт видимым только для зарегестрированных пользователей? Когда я меняю их права в общих настройках, т.е. запрещаю видеть сайт, то ничего не происходит. Необходимо, чтобы незарегестрированные могли видеть только форму авторизации, и больше ничего
*

Ragivort

  • Завсегдатай
  • 1154
  • 58 / 2
  • Такая Life
Когда я меняю их права в общих настройках, т.е. запрещаю видеть сайт, то ничего не происходит.

может это из-за того, что вы залогинены в админке?
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Кроме как регистрация должно по идее доступны логин, напомнить пароль.
Потому вот этот код будет делать вышеприведенные действия. Вставлять в шаблон.(index.php стандартно). Вставлять сразу после die
Код: php-brief
if (JFactory::getUser()->guest && JFactory::getApplication()->input->getCmd('option', '')!= 'com_users') {
JFactory::getApplication()->redirect(JURI::root().'index.php?option=com_users&view=registration');
return;
}
*

Eddrock

  • Новичок
  • 4
  • 0 / 0
Да, это помогло, спасибо. Странно, что к третьей версии разработчики не добавили эту функцию в инструментарий
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Да, это помогло, спасибо. Странно, что к третьей версии разработчики не добавили эту функцию в инструментарий
Значит её просто не проосили сделать.
*

Eddrock

  • Новичок
  • 4
  • 0 / 0
Я пробовал создать материал с типом "форма авторизации", и назначил его на главный сайт, причем внес это материал в дополнительно созданное меню. Затем остальные меню избавил от публичного просмотра. И в принципе получилось тоже самое.

Только не могу добавить на этой же странице форму регистрации.
« Последнее редактирование: 14.03.2013, 18:51:27 от Eddrock »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться