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

n.ostapenko

  • Осваиваюсь на форуме
  • 31
  • 0 / 0
"1 day 23 hours ago" нужна помощь
« : 26.01.2014, 09:15:49 »
Уважаемые форумчани! Нужна Ваша помощь. Под каждым материалом на сайте идет текст «1 day 23 hours ago», т.е. сколько времени назад материал был опубликован. Уже несколько дней пытаюсь его найти, чтоб перевести на русский. Не могу это сделать. Пробовал многое, от тотала до FireBug, путь не удается найти. Текст этот, конечно же не постоянный, каждый час значения меняются. Помогите, пожалуйста, найти расположение этого текста.
Вот, как это выглядит.


*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: "1 day 23 hours ago" нужна помощь
« Ответ #1 : 24.02.2014, 01:02:10 »
а что "вещает" файл, который собственно выводит этот материал? Может просто открыть его и поправить?
*

master-smeta

  • Захожу иногда
  • 298
  • 10 / 0
Re: "1 day 23 hours ago" нужна помощь
« Ответ #2 : 16.03.2014, 22:30:37 »
Нужно поправить вывод даты. Если у Вас какой-то компонент магазина стоит, то ищите в нем соответствующие настройки, либо в файле, отвечающем за вывод категорий материалов найти код вывода даты и заменить например на это
Код
<?php echo JText::_('COM_CONTENT_PUBLISHED_DATE_ON').JHtml::date($this->item->publish_up, JText::_('DATE_FORMAT_LC4'));?>
Собственно "DATE_FORMAT_LC4" это такой "шаблон" вывода даты. Их много, выбрать подходящий или отредактировать под себя можно в языковом файле ru-RU.ini
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Cоздание киргизскоязычной версии сайта (кому работка нужна?)

Автор mimoza

Ответов: 4
Просмотров: 1853
Последний ответ 27.04.2018, 18:52:30
от mimoza
Помощь в смене языка в мультиязычном сайте по умолчанию

Автор Влад90

Ответов: 1
Просмотров: 1581
Последний ответ 23.08.2017, 10:11:15
от lexxbry
Нужна региональна локализация

Автор alexvap23

Ответов: 3
Просмотров: 1288
Последний ответ 16.11.2015, 19:43:39
от kik84