Новости Joomla

Рендер пользовательского поля внутри другого пользовательского поля. Joomla 5.3

Писал ранее о том, как внутри одного пользовательского поля рендерить другое пользовательское поле. Применил для этого возможность Joomla обращаться к методам плагинов напрямую. Процитирую строчку кода из предыдущего поста:

<?php $joomlaFieldContentPlugn->onContentPrepare('com_content.article', $fakeItem, $app->getParams());

Joomla постепенно переходит от простого указания аргументов для триггеров плагинов к собственным классам событий. Это позволяет не запоминать порядок передачи аргументов класса и использовать человекопонятные методы

$event->getContext(),
$event->getItem() и т.д. А то в одном месте в Joomla было
$article, в другом -
$item, в третьем ещё как-то... Порядку больше становится.

Сегодня обновил сайт клиентов до Joomla 5.3. В ней обновили контент-плагин fields и мой финт ушами с вызовом метода плагина отвалился потому, что я передавал в нём 3 аргумента, вместо одного. И для события

onContentPrepare это должен быть объект класса 
ContentPrepareEvent. Как меняется фрагмент кода из предыдущего поста:

<?php // мы находимся в файле макета поля use Joomla\CMS\Event\Content\ContentPrepareEvent; use Joomla\CMS\Factory; $app = Factory::getApplication(); $fakeItem = new \stdClass(); // Получаем id текущего материала из объекта Input $fakeItem->id = $app->getInput()->getInt('id'); // {field 29} - это шорт код вставки поля с id 29 - "ассортимент проекта" // к содержимому поля конкатенируем шорт-код для обработки $fakeItem->text = $field->value . '{field 29}'; // Получаем объект плагина $joomlaFieldContentPlugn = $app->bootPLugin('fields', 'content'); // вызываем метод обработки напрямую // вместо 3-х аргументов теперь указываем один // это объект класса ContentPrepareEvent $joomlaFieldContentPlugn->onContentPrepare(new ContentPrepareEvent('onContentPrepare', [ 'context' => 'com_content.article', 'subject' => $fakeItem, 'params' => $app->getParams(), 'page' => 0, ])); // выводим оба поля echo $fakeItem->text;

@webtolkru 

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 802 Просмотров
*

DooM753

  • Захожу иногда
  • 91
  • 0 / 0
Меню сайта
« : 18.05.2015, 15:27:24 »
Здравствуйте, как мне сделать так   , а не вот так    вот ссылка на сайт http://95.134.112.118/joomla3/index.php/home          спасибо   где мне изменить код только не в макете
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Меню сайта
« Ответ #1 : 19.05.2015, 17:34:39 »
дописываем правила отображения ---- ...modules/mod_ext_superfish_menu/assets/css/superfish.css (48)
Код
.sf-menu {
    background: none repeat scroll 0 0 #ccc !important;
    float: left;
    margin-bottom: 1em;
    width: 100%;
}
И удалить отсупы и поля ----.../templates/rt_leviathan/css-compiled/master-b43be0b00a35888b3042578718e12cd8.css (1)

Код
.rt-block {
    background: none repeat scroll 0 0 #ccc;
    margin: 0 10px 10px; ---- удалить слева/справа
    padding: 0 15px 15px; ---- удалить слева/справа
    position: relative;
}
Если же этот класс привязан к другим блокам на странице, то надо изловчиться и прописать свой, индивидуальный класс
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Двойное меню

Автор cirip

Ответов: 0
Просмотров: 717
Последний ответ 05.11.2024, 23:19:21
от cirip
Пункт меню Текстовый разделитель ведет на главную страницу

Автор zahar_92

Ответов: 8
Просмотров: 3610
Последний ответ 27.07.2023, 13:37:17
от ei-dos
[РЕШЕНО]Скрыть пункт меню на мобильных устройствах

Автор lexxbry

Ответов: 16
Просмотров: 6101
Последний ответ 23.05.2023, 07:22:49
от geral
Цвет фона меню

Автор IhorPH

Ответов: 7
Просмотров: 2048
Последний ответ 21.03.2023, 11:47:29
от marksetter
OffCanvas меню Helix Ultimate добавить текст к иконке

Автор Andre100

Ответов: 2
Просмотров: 3118
Последний ответ 20.03.2023, 12:42:49
от Andre100