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

smadkz

  • Новичок
  • 4
  • 0 / 0
Всем привет. Помогите с такой с ситуацией с которой никогда не сталкивался. В общем у меня есть один сайт он на Joomla 1.5. И мне нужно создать сайт на третем уровне домена и поставить его на сервер на тот же комп на котором стоит первый сайт. Для того что бы сделать электронный каталог отдельно. Но я понятия не имею как добавить этот трех уровневый домен, или под домен как его правильно называть, что бы поставить второй сайт. У меня получается хостинга нет, у нас в орге стоит комп как сервер. В не установлен Apache старый и MySQL база и Joomla, куда лезть что бы добавить я не дупляю.
*

AlexB

  • Завсегдатай
  • 1973
  • 54 / 2
как минимум для начала надо получить этот самый домен
а там как обычно
*

Sgrey

  • Захожу иногда
  • 75
  • 4 / 1
Делал такое когда-то давно. Вам надо просто установить рядом с первым еще один сайт и в настройках htaccess сделать перенаправление на поддомен. Даже база данных может быть при этом общая. Правда там была какая то проблема, но подробностей уже не помню.

как минимум для начала надо получить этот самый домен
а там как обычно

Зачем что-то получать? Речь идет про поддомен, их можно самому насоздавать сколько угодно.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
В не установлен Apache старый и MySQL база и Joomla, куда лезть что бы добавить я не дупляю.
Сделать копию файлов и дамп базы данных, установить новый Apache .
А зачем поддомен на своем сервере, можно и два домена .
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
Если стоит задача поднять на этом компе, на котором стоит Joomla1.5, другой сайт на Joomla3, то задача не совсем тривиальная.
Надо сначала изменить конфигурацию компа, т.е. разобраться, как поднять еще один веб-сервер с требуемыми для Joomla3 версиями php и MySQL.
Чтоб решить эту задачу, нужны не знания Joomla, а знания системного администратора.
У нас в организации в локальной сети функционируют сайты на Joomla разных версий.
Но мы не делали на на одном компе разные конфигурации web-серверов.
Правда у нас виртуальная инфраструктура в локальной сети и нам не надо выделять для веб-сервера отдельное железо. Просто поднимаем виртуальную машину.

Так что проконсультируйтесь сначала с своими системными админами на тему, что проще - поднять на существующем компе еще один веб-сервер или выделить другой комп для решения вашей задачи.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
У меня получается хостинга нет, у нас в орге стоит комп как сервер. В не установлен Apache старый и MySQL база и Joomla, куда лезть что бы добавить я не дупляю.
Какая операционка стоит на компе?
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Помогите с БАГом в панели администратора Joomla 3

Автор akteon25

Ответов: 2
Просмотров: 472
Последний ответ 26.02.2025, 16:41:56
от akteon25
Версии РНР и Joomla 3

Автор Ebelous

Ответов: 8
Просмотров: 2153
Последний ответ 27.01.2025, 20:38:45
от pavelrer
Восстановить сайт

Автор 1c-zhit

Ответов: 1
Просмотров: 1050
Последний ответ 07.08.2024, 21:00:57
от Vastriet
Trouble Upgrading from Joomla 3.8 to 3.9

Автор melissa00

Ответов: 0
Просмотров: 1203
Последний ответ 26.07.2024, 10:03:51
от melissa00
SP polls в Joomla 3.8.2

Автор wawont

Ответов: 2
Просмотров: 2850
Последний ответ 22.02.2024, 21:03:15
от Zegeberg