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

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Хочу сделать возможность в своем компоненте ставить свойство "Избранное" для элемента.
в XML форме добавил field по образу и подобию как в com_content все заработало и даже не пришлось прописывать это поле в edit.php отдельно.
Встало и работает.

Сейчас же хочу в виде просмотра списка элементов в таблице добавить иконку Featured для быстрого изменения. Взял опять же com_contetn и копирую из него строки.

Вот что было у меня:
Спойлер
[свернуть]

Меняю на:
Спойлер
[свернуть]
Получаю ошибку 500 JHtml contentadministrator not found.
Как этот JHtml contentadministrator подключить или чем другим сделать?
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Re: Добавляю поле Featured в компоненте
« Ответ #1 : 21.10.2015, 13:32:36 »
contentadministrator - а что это и откуда взялось?)
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Добавляю поле Featured в компоненте
« Ответ #2 : 21.10.2015, 14:15:24 »
я взял эти строки из реализации featured в компоненте com_content
admin../com.../...content/views/articles/tmpl/default.php
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Добавляю поле Featured в компоненте
« Ответ #4 : 21.10.2015, 16:06:42 »
а как подключить эту штуку. Я ее в хелпере тоже нашел
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Добавляю поле Featured в компоненте
« Ответ #6 : 21.10.2015, 18:06:48 »
Там задача завязана только на вид articles! И если у вас нету вида articles и контроллера articles то ничего у вас не получится )

Но можно сделать так:
1. В файле классе вашего вида views/viewName/view.html.php вида списка где нужно делать избранное добавить метод:
Спойлер
[свернуть]
Обратите внимание на массив $states в нем состояния и два действия 'articles.featured','articles.unfeatured', (надо articles сменить на имя вашего текущего вида)

2. В шаблоне вида views/viewName/tmpl/default.php вывести кнопку  в нужном месте в цикле!
Код: php
<?php echo $this->featured( $item->favorites, $i, $canChange ); ?>

3. открываем контролер списка который совпаддает с именем задачи (если articles то controlllers/articles.php)
в нем:
a) В конструкторе добавить строку
Код: php
$this->registerTask( 'unfeatured', 'featured' );
б) Добавить  метод:
Спойлер
[свернуть]
Обратить внимание на com_your_component - имя вашего компонента 'index.php?option=com_your_component&view=your_view' - редирект на вид списка после того как поставится избранное!

4. Идем в модель одиночной записи (так которая у вас отвечает за редактирование записи в текущем списке и добавляем метод)
Спойлер
[свернуть]
Обратить внимание на запрос обновления #__table_name - имя таблицы в котором у вас поле для избранного, поле для избранного featured

p.s. в модели списка не забыть получить поле в котором будет значение избранного
p.s.s Если нужно добавить кнопки в избранное из избранного для массового изменения значения на панели задач:
Код: php
JToolbarHelper::custom( 'articles.featured', 'featured.png', 'featured_f2.png', 'JFEATURED', true );
JToolbarHelper::custom( 'articles.unfeatured', 'unfeatured.png', 'unfeatured_f2.png', 'JUNFEATURED', true );
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Опциональное поле в форме

Автор borro

Ответов: 21
Просмотров: 2074
Последний ответ 28.12.2020, 12:16:13
от platonische
Обработка AJAX в компоненте Joomla!3

Автор balancer

Ответов: 33
Просмотров: 11354
Последний ответ 23.07.2020, 07:45:53
от Dolphin4ik_1
Пагинатор в нестандартном компоненте

Автор sesil

Ответов: 8
Просмотров: 1144
Последний ответ 04.09.2019, 11:24:30
от sesil
Не видится файлы языкового пакета в созданном компоненте

Автор khachatur86

Ответов: 0
Просмотров: 1542
Последний ответ 30.03.2019, 23:35:26
от khachatur86
Стандартная система рейтингов в custom компоненте

Автор platonische

Ответов: 1
Просмотров: 885
Последний ответ 12.02.2019, 16:55:03
от platonische