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

rootroot

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Прочитал множество всяких формумов. Все перепробовал, но не работает.
*

assaru

  • Давно я тут
  • 763
  • 88 / 1
Шикарный вопрос!
Сколько тем для размышления.... И проверка на экстрасенсорные возможности.

1. Что за модуль?
2. Что делали?
3. Что не получается?
4. Где пациент?
5. ..............
6. ..............
..................
N. Что вообще хочется?
Проблему можно решить и по скрину и по эмоциям, счет на оплату через ЛС (с) Nobody
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Открываете templates/шаблон/html/modules.php и правите. Если нет такого файла, то создаёте. Пример моёго простого:
Код: php
<?php defined('_JEXEC') or die;
function modChrome_simple($module, &$params, &$attribs) //здесь simple - это стиль позиции модуля
{
$sfx = htmlspecialchars($params->get('moduleclass_sfx')); //получили суфикс
if (!empty ($module->content)) { ?> <!--проверяем, а есть ли, собсно, модуль-->
<div class="module <?php echo $sfx; ?>"> <!--дописываем суфикс дополнительным классом-->
<?php if ($module->showtitle) { ?> <!--проверяем, если разрешён показ заголовка, то выводим-->
<h3><?php echo $module->title; ?></h3>
<?php }; ?>
<div class="mod_content"> <!--а тут сам модуль-->
<?php echo $module->content; ?>
</div></div>
<?php };
}
*

rootroot

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Хочу создать немного другое оформление для модуля регистрации/вход на сайт.
Т.е. что бы занимал ровно 200 px в ширину.
Цвет рамки другой, т.е. темно синий.
И оформление меню. Т.е. не вдохновляет меня простые синие кнопочки. Нужно другое.
*

assaru

  • Давно я тут
  • 763
  • 88 / 1
FireBug для Mozilla, Dragonfly -> Opera, кнопка F12 -> Chrome.
Действуйте.
Проблему можно решить и по скрину и по эмоциям, счет на оплату через ЛС (с) Nobody
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Я же написал как сделать, с подробными комментариями. Ну логично ж потом пользоваться так:
1. В менеджере модулей в css-суфиксе прописываем типа moya-forma
2. В css-ке пишем
Код: css
.moya-forma {border:#f00 solid 1px;}
*

rootroot

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Например.
Я пишу в CSS. следующее.
.modul_new{
width: 200px;
heigth: 400px;
background:url("../images/xxx.png") repeat-x #ffffff;
border: 3px solid blue;
}
Захожу в настройки модуля и прописываю суффикс _new.
По идее, должно работать, не работает на практике.
Вывожу так
<jdoc:include type="modules" name="position-1" style="module_now">
Перепробовал все стили от XHTML до NONE.
*

rootroot

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Я же написал как сделать, с подробными комментариями. Ну логично ж потом пользоваться так:
1. В менеджере модулей в css-суфиксе прописываем типа moya-forma
2. В css-ке пишем
Код: css
.moya-forma {border:#f00 solid 1px;}
Хм, спасибо.
Получается, мы должны писать примерно так
#primernotak .moya-forma{
here're css
}
Хм, нужно попробовать.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Ну сперва убедитесь, что суффикс в принципе, присваивается, как класс. А это в modules.php делается.
*

rootroot

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Ну сперва убедитесь, что суффикс в принципе, присваивается, как класс. А это в modules.php делается.
Хм.
Ну я вообще с PHP не знаком.
Не трудно будет сделать для меня небольшое "издание" - разжевывание оформление для простофиль.
Буду благодарен.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Первую часть я уже сделал. Просто создайте такой файл у себя в шаблоне.
Вторая часть:
Открываете templates/шаблон/index.php
Добавляете вот такую строку в то место, где надо выводить ваши стилизованные модули:
Код: html4strict
<jdoc:include type="modules" name="moyaposiciya" style="simple" />
С HTML знакомы?
*

rootroot

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Значит, первую часть я добавил в modules. php.
Строку добавил в index.php
Что теперь делаем?
Можно создавать оформление?
*

rootroot

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Итак, я создаю стиль скажем для меню.
Пишу так.
#left .menu-simpe{
Codes of css
}
Дальше я просто прохожу в админку, выбираю модуль и и ставлю суффикс "simple".
Так?
Хм, нужно попробовать.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Ну если делать по-моёму коду, то в админке и нужно писать menu-simpe :)
*

akgel

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Подскажите, пожалуйста.
Я добавляю в modules.css новый суффикс:

.module_qoutes  {
  color: #fff;
}

В свойствах модуля добавляю его название.

_qoutes

Не срабатывает, а FireBug показывает, что перед моим введенным суффиксом появляется пробел:

<div class="module qoutes deepest">

Видимо поэтому не срабатывает. Где найти, кто вставляет этот пробел?
*

Mr.Bean

  • Новичок
  • 1
  • 0 / 0
У меня то же как то с модулями не ясно ...
 Вот прям кусок кода
<div class="block prob"><div class="blockheader"><h3 class="t">Проба</h3></div><div class="blockcontent"><div class="custom prob"  >
Где "block prob" это кастомный модуль ("prob" это суфикс), дальше идёт хэдер этого блока "blockheader"(заметьте, уже без суффикса) и заголовок Н3
И задача вывести заголовок, он же "проба" в коде своим шрифтом и со своим бекграундом...
Как это писать в CSS? это же всё классы...
.block prob.blockheader h3 .block prob h3.blockheader
Пробовал присваивать суффикс без пробела ( в админке ), в коде пишется без пробела, но результат тот же - ноль изминений!
Может я как то неверно понимаю иерархию написания классов в CSS?
*

polepropilen

  • Осваиваюсь на форуме
  • 29
  • 1 / 0
чтот ни ХМ оно не работает
*

Chebu

  • Новичок
  • 1
  • 0 / 0
Ну если делать по-моёму коду, то в админке и нужно писать menu-simpe :)
можете проконсультировать как вокруг модуля сделать рамку? прочел форум несколько раз.. даже попытался попробовать.. по ходу "моё кунг-фу еще не такое как у сенсеев.." короче не получилось((
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
можете проконсультировать как вокруг модуля сделать рамку? прочел форум несколько раз.. даже попытался попробовать.. по ходу "моё кунг-фу еще не такое как у сенсеев.." короче не получилось((
Некропостер )) И маньяк, даже я не смог прочитать форум несколько раз

В настройках модуля задаете суффикс модуля, к примеру myclass
В файле стилей шаблона пишете
Код
.myclass {border: 1px solid #000}

Но - три раза но - может не работать по десятку разных причин - в настройках модуля (не входящего в коробку движка) нет этого поля, в настройках шаблона на уровне файла modules.php и стиля вывода модуля это вырезано и так далее.

Но всегда (если модуль в этой позиции один) можете обернуть его в отдельный div на уровне index.php шаблона позицию и делать с ней что угодно
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать свой шаблон quickstart?

Автор saiskyi

Ответов: 3
Просмотров: 6407
Последний ответ 19.02.2020, 19:29:01
от Bozhkov2
Как загрузить шаблон, и сделать его только для одной страницы?

Автор Ирина Поехали

Ответов: 5
Просмотров: 2045
Последний ответ 05.06.2017, 21:15:42
от effrit
Добавить позицию модуля в шаблоне traction

Автор amaddeus

Ответов: 1
Просмотров: 1930
Последний ответ 27.04.2017, 22:23:31
от darkghost
Добавление позиции модуля

Автор 13RUS

Ответов: 1
Просмотров: 1521
Последний ответ 16.12.2016, 12:38:15
от darkghost
Как сделать ссылку на скачивание файла в Joomla?

Автор verter2061

Ответов: 2
Просмотров: 1402
Последний ответ 17.08.2016, 14:09:09
от Shustry