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

Modis

  • Захожу иногда
  • 153
  • 0 / 0
Извиняюсь, за возможно глупый вопрос, но...
Почитал пару статей о том, как сделать мультиязычность. Основная проблема, как я понял - правильно настроить меню. Настроил. Языки появились и теперь мне нужно контент разносить на два языка. И вот тут у меня вопрос - а как мне правильно создавать новые категории?
Допустим, есть категория Новости с алиясом news. У нее стоит язык Русский. И теперь я хочу создать категорию для Английского языка - News. Логично, что и алиас должен остаться news, но джумла на меня ругается, мол "Другая категория с той же родительской категорией уже содержит такой алиас". Логично, что родительской категории нет

Что я упускаю?
*

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
создайте по одной родительской категории для каждого языка
*

Modis

  • Захожу иногда
  • 153
  • 0 / 0
создайте по одной родительской категории для каждого языка
а эта самая категория не пойдет в путь? Создам категорию с алиасом ru и получу site/ru/ru/news.
Мне бы хотелось, чтобы пути остались прежними
*

Modis

  • Захожу иногда
  • 153
  • 0 / 0
Проверил - вроде en/en/news не получается. Буду пробовать потихоньку
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а эта самая категория не пойдет в путь? Создам категорию с алиасом ru и получу site/ru/ru/news.
алиасы по меню стройте. заодно при этом на алиасы категорий вообще можно будет не обращать внимания. роутер только экспериментальный включите, чтобы дублей не было.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Из мультиязычности в Русский язык

Автор klara7

Ответов: 3
Просмотров: 3540
Последний ответ 28.10.2019, 19:04:27
от klara7
Редиректы при мультиязычности

Автор nikola_blin

Ответов: 1
Просмотров: 3224
Последний ответ 13.09.2019, 09:50:48
от AlekVolsk
Алиасы с русского

Автор vetali

Ответов: 8
Просмотров: 1914
Последний ответ 19.08.2016, 17:24:22
от vetali
Алиасы в 3, 5 автоматически создаются в формате даты

Автор fandjuml

Ответов: 4
Просмотров: 3626
Последний ответ 02.04.2016, 12:50:25
от fandjuml
Изминения функционала мультиязычности в J3.5

Автор zilonitiz

Ответов: 1
Просмотров: 1730
Последний ответ 23.03.2016, 21:50:37
от zilonitiz