Новости 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 Ответов
  • 2622 Просмотров
*

Solbadguy

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Akeeba проблема
« : 13.03.2013, 20:03:47 »
при попытке сделать копию сайта выскакивает эта ошибка, отдельно копию базы данных сделать могу, копию сайта нет . переустанавливал, чистил все под 0 , резульатта не получил никакого.

Резервное копирование не удалось

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

AJAX Loading Error
HTTP Status: 502 (Bad Gateway)
Internal status: error
XHR ReadyState: 4
Raw server response:
Service Temporarily Unavailable

The server closed the connection without sending any data.

The server is temporarily unable to service your request due to maintenance downtime or capacity problems.

Due to heavy load on the server, connections may be temporarily blocked from locations that fetch an unusually high number of pages.

We apologize for the inconvenience.
*

fbr

  • Завсегдатай
  • 1657
  • 201 / 7
Re: Akeeba проблема
« Ответ #1 : 14.03.2013, 17:10:49 »
такое периодически бывает, по-видимому из-за загруженности сервера

Попробуйте поменять параметры настройки. Я поставил такие:

Минимальное время выполнения - 20
Максимальное время выполнения - 3
Отклонение времени исполнения - 10

Время копирования увеличивается, но само копирование чаще завершается успешно ))
*

Solbadguy

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Akeeba проблема
« Ответ #2 : 14.03.2013, 17:18:32 »
попробую отпишу, пасибо за ответ.
*

Solbadguy

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Akeeba проблема
« Ответ #3 : 15.03.2013, 08:49:01 »
Резервное копирование не удалось
Операция резервного копирования была приостановлена, поскольку была обнаружена ошибка.
Последним сообщением об ошибке было:

AJAX Loading Error
HTTP Status: 502 (Bad Gateway)
Internal status: error
XHR ReadyState: 4
Raw server response:
Service Temporarily Unavailable
The server closed the connection without sending any data.

The server is temporarily unable to service your request due to maintenance downtime or capacity problems.

Due to heavy load on the server, connections may be temporarily blocked from locations that fetch an unusually high number of pages.

We apologize for the inconvenience. ((
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Akeeba проблема
« Ответ #4 : 15.03.2013, 09:00:10 »
http://yandex.ru/yandsearch?text=%D0%B8%D0%B7-%D0%B7%D0%B0%20%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%20502%20(Bad%20Gateway)&clid=1857859&lr=65

Разговаривайте с хостером или меняйте его. Можете посмотреть логи ошибок на время 502 ошибки. Акиба тут ни при чем.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема из chosen.php генерит js ошибку

Автор platonische

Ответов: 0
Просмотров: 1450
Последний ответ 20.05.2020, 11:11:03
от platonische
Проблема с кешем?

Автор bandanu

Ответов: 5
Просмотров: 1947
Последний ответ 29.11.2019, 00:57:10
от gartes
Проблема с настройками вывода материалов в 2 колонки

Автор TowRed

Ответов: 31
Просмотров: 15572
Последний ответ 04.10.2019, 06:01:24
от Sveta2889
Проблема после обновление с 2.5.19 на 2.5.28

Автор Осет72

Ответов: 5
Просмотров: 1409
Последний ответ 08.01.2017, 16:20:14
от ProtectYourSite
[Решено] Проблема с выводом даты и часовым поясом

Автор afikus

Ответов: 6
Просмотров: 8587
Последний ответ 28.12.2016, 14:16:50
от newvideo