Sergey
Ох тыж ... Спасибо!
Но это может быть не совсем то, что вы хотите. Но мало ли, подойдет
Антон
Но это может быть не совсем то, что вы хотите. Но мало ли, подойдет
С этим уже можно работать. Не знал что в J4 такой функционал есть
Антон
https://vc.ru/media/306257-rukovodstvo-po-novoy-funkcii-joomla-4-processy
Я так вижу. Материал - это лист согласования (можно доп полями разрулить). Он редактируется. К материалу цеплять файл (pdf, doc, etc..) И запускать Материал процессом по маршруту. Интересная идея. Реализуемая
Artem
Чёт я потыкался с этими workflow и пришёл к выводу, что он ппц какое сырое и в реальной жизни, не дописывая тонну плагинов, пользоваться им бесполезно
Смирнов
а клауд ухудшит позиции
Владимир, а можно подробнее. Мне как раз один SEO умелец рассказывает, что надо загнать сайт в Cloudflare, чтобы поднять позиции сайта на английском языке забугром. Вы сами пробовали или находили информацию?
Vladimir
но даже платный тариф не так очевиден и приносит много проблем
Vladimir
он скорее вредит
Alexey
Ещё вариант, только адаптируйте под себя https://github.com/sergeytolkachyov/WT-AmoCRM---JoomShopping-Joomla-plugin/blob/main/media/js/wt_amocrm_jshopping_utm.js
В итоге собрал - заработало. Могу код скинуть. Но у меня другой вопрос теперь, этот скрипт просто в индекс, или можно как-то красиво подключать ?🥴
Aqaus
Ну бот же
Sonkin
WT Contact anywhere with fields плагин для Joomla 5 Этот пакет плагинов нужен для вывода информации из компонента контактов com_contact Joomla. Например, Вы создали каталог онлайн курсов на одном из компонентов для электронной коммерции или материалах Joomla и Вам нужно вывести информацию о преподавателе курса - Вы можете использовать этот плагин. Плагин позволяет отображать данные контакта со всеми стандартными полями, а так же данными пользовательских полей. Для этого нужно создать свой макет вывода в папке tmpl плагина и указать его в параметре шорт-кода. 👩‍💻 Пакет состоит из двух плагинов: - Плагин контента - обрабатывает шорт-коды и выводит информацию об авторе в материалах Joomla. - Плагин кнопки редактора - позволяет удобно искать и выбирать контакты в модальном окне и вставлять шорт-код с выбранным макетом вывода. 👤 Информация об авторе статьи в Joomla Также контент плагин может выводить блок информации об авторе материала в статье и в категории материалов. Для каждого вывода можно указать отдельный макет. Ранее были распространены отдельные плагины, которые добавляли дополнительные поля в профиль пользователя и выводили данные из них. Однако, в Joomla есть плагин, который при регистрации пользователя создаёт контакт в компоненте контактов. Также при создании контакта можно указать соответствующего ему пользователя Joomla вручную. Joomla с помощью стандартного плагина может отображать автора материала как ссылку (ссылка на профиль автора / ссылка на его сайт / email). Компонент "Контакты" позволяет указывать немало информации: адрес, телефоны, email, должность, фотографию (аватар), текст "о себе" и т.д. Также в компонент можно добавить любое количество пользовательских полей. Но стандартный плагин Joomla "Контент - Контакт" не позволит отобразить все эти данные. Данную проблему в том числе решает этот плагин. Системные требования Минимальная версия Joomla - Joomla 5. На Joomla 4 плагины из пакета не будут работать. Страница расширения GitHub расширения
. Вот как было догадаться, что за это контент-плагин может отвечать??? // Решилось: $app->triggerEvent('onContentPrepare', ['com_content.article', &$item, &$params, 0]); $params должен быть Registry Object и содержать $params->get('link_author'); @sergeytolkachyov, благодарю от всего и вся!!! Я бы в контент-плагинах сроду не стал искать.
Sergey
Так это на 5 уже...
Метод triggerEvent в пятёрке устаревший, насколько помню
Sonkin
Метод triggerEvent в пятёрке устаревший, насколько помню
- Да. @deprecated 4.0 will be removed in 6.0 Use the Dispatcher method instead Example: Factory::getApplication()->getDispatcher()->dispatch($eventName, $event); К 6-й надо будет переделать! Контент-плагины всё равно же не отменят?
Artem
Кто нибудь может объяснить, в чём суть ImmutableEvent в джумле? https://github.com/joomla/joomla-cms/blob/6.0-dev/libraries/src/Event/AbstractImmutableEvent.php
Artem
Для меня immutable - это когда переданный в диспатчер event не поменяется никогда. В идеале, каждому listener'у должен передаваться Event в первоздмнном виде
Artem
А тут шляпа какая-то
Artem
я могу делать с event'ом что угодно, кроме как писать и удалять свойства, как в массиве
Artem
wtf?!?!
Artem
я могу воббще запороть вем другим плагинам жизнь, выполнив removeAttributes()
Dmitry
Они почему-то не закрыли другие методы
Artem
Там вообще трэш какой-то с этим immutable
Dmitry
https://github.com/joomla-framework/event/blob/2.0-dev/src/EventImmutable.php
Dmitry
Тут тоже не закрыто
Artem
есть PR, который родить не могут до конца уже 1,5 года
Dmitry
Странно, get set argument не закрыты
Artem
https://github.com/joomla-framework/event/blob/2.0-dev/src/EventImmutable.php
К фреймворку вообще много вопросов. Они на него забили?
Dmitry
CMS на нем базируется
Artem
В Joomla CMS есть решения из разряда "превозмагая себя". Они в cms добавляют кастыли, чтобы обойти косяки фреймворка
Dmitry
🤷‍♂
Artem
Например, Joomla CMS наследует AbstractImmutableEvent от AbstractEvent в cms, вместо того, чтобы расширять фреймворк
Artem
Какая-то дикая несогласованность
Dmitry
И при этом он совсем не иммутабл ))
Artem
вот да
Dmitry
Ща вопрос им задам
Artem
George Wilson сделал PR который, типа, должен его всё таки сделать Immutable, но всё никак не доделает, потому что не понятно, а нужен ли в джумле EventFactory?
Artem
Dmitry
Дай ссыль, чтобы не искать :)
Dmitry
А тебе реально понадобилось такое событие, чтобы прям иммутабл
Artem
https://github.com/joomla/joomla-cms/pull/39469
Artem
Очень важный момент при работе с response сервера
Artem
Ни в коем случае менять нельзя. Только читать
Artem
Ну и ещё парочка моментов, когда в аргументе прилетает массив, который нельзя менять. Он только для проверки прав доступа используется
Artem
https://github.com/joomla/joomla-cms/pull/39469
ну я там своё небольшое "фи" высказал. Поглядим..
Artem
А то они там я смотрю 9 лет PSR-7 в класс URI внедряли... И не внедрили
Artem
просто забив
Artem
закрыли PR без объяснения понятного
Artem
может быть они, конечно, в чатиках это обсуждают где-то...
Igor
Я вообще против новой системы events да это прикольно что есть методы можно повесить обработчки и т.д Но 1. с данными полны ковордак. 2. В любом нормальном компоненте будет столкьо классов events что повеситься можно. В общем усложнение ради усложения
Алексей
Вопрос. Как добавить дополнительное поле к пункту меню в админке joomla. Например сделать поле аналогичное полю "Примечание"?
Dmitry
https://github.com/joomla/joomla-cms/tree/6.0-dev/libraries/src/Event
Dmitry
Вон сколько классов уже с ожидаемым поведением
Sonkin
Статья на Хабре про написание плагинов Joomla 4,там пример. Ну и в ядре тоже
$eventContentPrepare = AbstractEvent::create( 'onContentPrepare', ['context' => 'com_content.article', 'subject' => &$item, 'params' => &$params, 'page' => 0 ] ); $app->getDispatcher()->dispatch($eventContentPrepare->getName(), $eventContentPrepare); Теперь так.
Sonkin
Но вот что-то я думаю : / Для каждого айтема надо создать евент (новый объект), который нужен чтобы вызвать контент плагин, который пробегает по всей таблице контактов (каждый раз), чтобы потом через RouteHelper получить алиас контакта, чтобы потом дописать его в исходный айтем... Всё просто. ) А материалов же не один, не два.
Sonkin
Цель какая?... Не надо столько классов плодить.
Начальная цель — получить url авторов материалов в модуле.
Sonkin
Надо сразу в БД смотреть наверное.
Sergey
Начальная цель — получить url авторов материалов в модуле.
Не, надо посмотреть код плагина штатного "Контент - Контакт". И там понятно как оно работает.
Sergey
Начальная цель — получить url авторов материалов в модуле.
Или тут components/com_content/src/Model/ArticleModel.php запрос посмотреть в getitem()
Sonkin
Из штатного новостей переделанный, разумеется.
Artem
Из штатного новостей переделанный, разумеется.
Сел я и посмотрел и не понял теперь, в чём проблема?
Artem
Сел я и посмотрел и не понял теперь, в чём проблема?
Чем код из стандартного модуля новостей не устроил?
Artem