Новости 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 

Вышел релиз Joomla 5.3.0

Вышел релиз Joomla 5.3.0

Проект Joomla с радостью объявляет о выходе Joomla 5.3 — последней минорной версии в серии Joomla 5.

Этот релиз сосредоточен на продуманных улучшениях, которые совершенствуют работу с CMS. От лучшей организации файлов и журналирования задач до расширенной обработки электронной почты и улучшенной доступности — Joomla 5.3 помогает администраторам и разработчикам работать более эффективно, сохраняя ваш сайт современным, безопасным и готовым к будущему.

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

web111

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Здраствуйте уважаемые форумчане !
У меня вопрос по регистрации. Вот при заполнении всех данных и нажатии регистрации появляеться такое:

Я смотрел у вас на форуме как возможо исправить но не помогло.  :(
У меня 3.1 версия Joomla. Пожалуйста помогите .
« Последнее редактирование: 31.01.2014, 19:38:43 от b2z »
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Проблемы с регистрацией
« Ответ #1 : 31.01.2014, 18:01:47 »
Странно, потому что регистрация по сути не связана с компонентом "Контакты". Регистрация используется стандартная?
*

web111

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Проблемы с регистрацией
« Ответ #2 : 31.01.2014, 18:14:14 »
Странно, потому что регистрация по сути не связана с компонентом "Контакты". Регистрация используется стандартная?
Спасибо что откликнулись на мой вопрос. Вот мой сайт там не работает регистрация uni3dev.com .
Если честно у меня регистрация происходит на 2 компонента: это стандартная и joomsosial. Можете посмотреть на сайте. Если знаете, помогите пожалуйста.
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Проблемы с регистрацией
« Ответ #3 : 31.01.2014, 18:29:40 »
Ну да, у Вас регистрация JomSocial, а не стандартная. По идее она тоже никак не связана с контактами. А после чего вдруг начала возникать такая ошибка? Может что-то устанавливали?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Проблемы с регистрацией
« Ответ #4 : 31.01.2014, 18:40:56 »
Странно, потому что регистрация по сути не связана с компонентом "Контакты".
Включен плагин группы User, Пользователь создание контакта, наверное
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Re: Проблемы с регистрацией
« Ответ #5 : 31.01.2014, 18:54:34 »
Включен плагин группы User, Пользователь создание контакта, наверное
Уху, только хотел об это написать - опередил. Стоит проверить.
*

web111

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Проблемы с регистрацией
« Ответ #6 : 31.01.2014, 19:00:36 »
Уху, только хотел об это написать - опередил. Стоит проверить.
Спасибо.
А какой с них нужно отключить)
*

b2z

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

web111

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Проблемы с регистрацией
« Ответ #8 : 31.01.2014, 19:31:33 »
Пользователь - создание контакта
Огромное вам спасибище! Работает.
Хм...хотя я у вас на форуме тоже находил и решения было такое самое я у себя сделал и оно что то не работало, а щас заработало.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Зависает установка Joomla на создании таблиц (на 4 шаге)

Автор usersyslog

Ответов: 16
Просмотров: 62101
Последний ответ 30.06.2021, 15:44:51
от AlexFans
[Решено] Создание модуля. Генерировать CSS для каждой копии модуля

Автор eugenes

Ответов: 10
Просмотров: 21351
Последний ответ 13.02.2019, 12:48:40
от passer
[Решено] Отключить двухэтапную авторизацию через MySQL

Автор amino_2012

Ответов: 3
Просмотров: 20605
Последний ответ 07.10.2015, 09:55:58
от amino_2012
[Решено] Как создать сборку на базе Joomla 3.3 ?

Автор Ghash

Ответов: 14
Просмотров: 24813
Последний ответ 17.12.2014, 10:00:13
от b2z
[Решено] Вывод вступительного изображения в модуле Материалы - Новости

Автор kik84

Ответов: 5
Просмотров: 23994
Последний ответ 09.11.2014, 22:23:17
от kik84