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

anthony80

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Коллеги, приветствую, нужна ваша помощь  !

Рабочая связка следующая: Joomla 3.10.3, PHP 7.3.31, компонент SP Page Builder 3.8., шаблон Helix 2.0.5.

Встала задача - использовать компонент комментариев, но не встроенный который идёт к шаблону и не SP Commets, который также в активе разработчика, а полноценный, чтобы с премодерацией, расширенными настройками и т.д.

Сначала выбор пал на RSComments. Всё понравилось, поставил, настроил, вроде работает (сам компонент) и тут я заметил, что кнопка меню (гамбургер меню) перестала работать  :'( Сделал ряд откатов, чтобы понять в какой момент это происходит, точной закономерности не нашёл, просто в какой-то момент обновлений и настройки RSComments меню перестаёт работать  *ОХ-Х-Х*
Подумал, что ж, жаль, видно не дружит рабочая связка с этим компонентом  :P

Потом перепробовал ещё несколько малоизвестных компонентов - все либо глючили, либо отказывались работать, либо не устраивали по функциональности.

Нашёл ещё один - Komento. Попробовал - вроде то, что надо, но стал настраивать и снова точно такая же ситуация, меню перестаёт работать  :P Отключаю комментарий на странице - работает, включаю - не работает. И хоть тресни не могу понять в чём дело  *ОХ-Х-Х*

В чём тут может быть дело?

Заранее благодарю за конструктивный ответ.
 
« Последнее редактирование: 15.11.2021, 11:14:47 от anthony80 »
*

sivers

  • Живу я здесь
  • 2571
  • 355 / 0
Re: SP Page Builder + Helix + комментарии = ступор
« Ответ #1 : 15.11.2021, 08:49:18 »
На странице с комментом есть js-ошибка (в консоли видно). Скорее всего причина в ней.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

anthony80

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: SP Page Builder + Helix + комментарии = ступор
« Ответ #2 : 15.11.2021, 09:30:51 »
На странице с комментом есть js-ошибка (в консоли видно). Скорее всего причина в ней.

Благодарю за ответ! Открываю консоль, читаю

--
Uncaught TypeError: Cannot read properties of undefined (reading 'slice')
--

в js файле компонента и далее указания на функции.

В JavaScript-е я понимаю слабо, но представляю, что происходит какое-то наложений свойств и возникает конфликт на стыке двух компонентов.

Главный вопрос - что теперь делать?

Попробовать откатиться на более ранние версии компонента комментариев? Или вообще категорически от него отказаться?
Какие тут могут быть варианты? Можно конечно попробовать написать разработчикам SP Page Builder со скринами ошибки, но я не верю, что решение будет обеспечено в ближайшие несколько дней-неделю, а мне нужно более продуктивно решать вопрос.

Что посоветуете?

 
*

sivers

  • Живу я здесь
  • 2571
  • 355 / 0
Re: SP Page Builder + Helix + комментарии = ступор
« Ответ #3 : 15.11.2021, 10:22:57 »
Что посоветуете?
даже не знаю, учитывая что
В JavaScript-е я понимаю слабо

Есть подозрение, что скрипт комментов загружается раньше, чем успевает прогрузиться jQuery и от того генерит ошибку, прерывающую дальнейшее выполнение всех скриптов. Чтоб это проверить, надо подключать скрипт комментов с атрибутом defer или другим способом отложить его загрузку. Еще неплохо было бы переместить подключение скрипта комментов в конец страницы. Если же это не поможет - разбираться дальше.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

anthony80

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: SP Page Builder + Helix + комментарии = ступор
« Ответ #4 : 15.11.2021, 11:14:06 »
даже не знаю, учитывая что
Есть подозрение, что скрипт комментов загружается раньше, чем успевает прогрузиться jQuery и от того генерит ошибку, прерывающую дальнейшее выполнение всех скриптов. Чтоб это проверить, надо подключать скрипт комментов с атрибутом defer или другим способом отложить его загрузку. Еще неплохо было бы переместить подключение скрипта комментов в конец страницы. Если же это не поможет - разбираться дальше.

Вновь благодарю за совет и желание помочь, но решить задачу указанным способом мне - непрограммисту будет тяжело.
Я попробовал новый компонент CComment - конечно не предел мечтаний, но с общей задачей справляется и меню не блокирует.
Буду пробовать настроить стили, возможно на нём же и остановлюсь.

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

SP Builder sppb-nav Вертикально

Автор ssaich

Ответов: 0
Просмотров: 231
Последний ответ 06.04.2025, 17:31:32
от ssaich
SP Page Builder - Tabs | Ссылка на tab, чтобы открывалась нужная вкладка?

Автор krestowsky

Ответов: 1
Просмотров: 1937
Последний ответ 23.04.2024, 09:28:25
от fragmarw
Проблема с SP Page Buildier

Автор Aleksey1982

Ответов: 20
Просмотров: 4752
Последний ответ 10.11.2023, 20:13:53
от Шмайсер
Error displaying the error page

Автор VIK4

Ответов: 22
Просмотров: 1065
Последний ответ 20.11.2021, 16:33:26
от VIK4
Шаблон helix 3, не скролится таблица на мобильном

Автор Юрий777

Ответов: 8
Просмотров: 849
Последний ответ 01.11.2021, 09:47:21
от draff