Новости Joomla

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

0 Пользователей и 1 Гость просматривают эту тему.
  • 217 Ответов
  • 109934 Просмотров
*

proandrey

  • Захожу иногда
  • 85
  • 1 / 0
Вот и я перенес свой сайт https://pirog.in.ua с Joomla 1.5.26 на Joomla 2.5.7 с помощью компонента jupgrade.
Новая версия доступна пока только по адресу https://pirog.in.ua/jupgrade/
Мое мнение:
компонент абсолютно бесполезный, т.к. всё необходимо дорабатывать ручками, а при таком положении дел можно очень просто установить чистую версию движка и проделать абсолютно идентичные действия, а именно: перенос статей, поиск и установка плагинов и т.д.
« Последнее редактирование: 09.06.2019, 19:30:14 от proandrey »
*

andrejdi

  • Захожу иногда
  • 329
  • 32 / 0
*

proandrey

  • Захожу иногда
  • 85
  • 1 / 0
И что нового Вы мне хотите показать в п.10? То что сайт надо копировать? Так я сам Вам расскажу про это. Копировать то там нечего без полной переработки сайта, а надо устанавливать все плагины, галереи, компоненты, потратить кучу времени на отладку. Так легче то же самое проделывать с чистого листа. На копирование статей моего сайта уйдет пару часов времени, это же время я потрачу и на отладку этих статей после переноса. Так лучше сразу ставить версию 2.5 и начинать работу - меньше гемора получится
*

muzbox

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Всем привет

Мой сайт: http://pasha4ur.org.ua/

Хочу перенести стать и комментарии. Поставил джапгрэйд на локальную версию сайта, но дальше этого не двигается:

Ждал около 25 мин

спасибо!
[/qu
Всем привет

Мой сайт: http://pasha4ur.org.ua/

Хочу перенести стать и комментарии. Поставил джапгрэйд на локальную версию сайта, но дальше этого не двигается:

Ждал около 25 мин

спасибо!

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

HeartOfSteal

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Господа, помогите завершить обновления, пожалуйста.
Через jupgrade у меня все пункты прошли успешно, но...
В папке jupgrade у меня новая Joomla, но там же нет моих плагинов и компонентов .которые были на Joomla 1.5
Как перенести их на новую версию? Так куча галерей и возможности вручную переносить нет..

При том, что в базе данных эти компоненты есть, но в папках на новой Joomla - нет.
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
Господа, помогите завершить обновления, пожалуйста.
Через jupgrade у меня все пункты прошли успешно, но...
В папке jupgrade у меня новая Joomla, но там же нет моих плагинов и компонентов .которые были на Joomla 1.5
Как перенести их на новую версию? Так куча галерей и возможности вручную переносить нет..

При том, что в базе данных эти компоненты есть, но в папках на новой Joomla - нет.
Зачем Вы плодите один и тот же вопрос?
Вам ответили уже на это http://joomlaforum.ru/index.php/topic,51954.msg1346618.html#msg1346618
Цитировать
Заходите на сайты разработчиков своих компонентов и плагинов и ищите у них информацию о том, как сделать миграцию их продуктов с движка 1.5 на 2.5
*

roma24

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Певетствую вас дрзя! у меня горе. задумал обновть Joomla с 1.5.23 до 2.5 сделал бекап сайта. Установил компонент каторий обновляэт Joomla запустил обноаляло 3 часа и нечево не зделало сайт перестал роботать. задумал перезалить полнастю всьо перезалил следующа сетуация какда вхажу на сайт появляэтса просто тупо чистая страница кагда вхажу в админку появляэтса форма авторизации вжа пороли и просто перезагружаэтса таже страница. что мне дилать? пажалуста падскажите. :-(
*

webphp

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
gjgh
Певетствую вас дрзя! у меня горе. задумал обновть Joomla с 1.5.23 до 2.5 сделал бекап сайта. Установил компонент каторий обновляэт Joomla запустил обноаляло 3 часа и нечево не зделало сайт перестал роботать. задумал перезалить полнастю всьо перезалил следующа сетуация какда вхажу на сайт появляэтса просто тупо чистая страница кагда вхажу в админку появляэтса форма авторизации вжа пороли и просто перезагружаэтса таже страница. что мне дилать? пажалуста падскажите. :-(

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

Внимание! Тема для тех у кого не работает JUpgrade. Решение.

Автор Snip

Ответов: 68
Просмотров: 58362
Последний ответ 14.01.2025, 07:42:09
от R31rus
Обновление с Joomla 2.5.21

Автор mmablock

Ответов: 3
Просмотров: 2960
Последний ответ 23.09.2023, 13:28:40
от mmablock
Переход с 1.5 на 2.5 Joomla

Автор jomdj

Ответов: 357
Просмотров: 116585
Последний ответ 27.05.2022, 08:01:20
от Thomas Bergersen
[Решено] Перенос только материалов с Joomla 2.5 на Joomla 3.9

Автор dron

Ответов: 11
Просмотров: 8646
Последний ответ 05.01.2022, 16:27:23
от blind
Joomla 2.5.5 + VirtueMart 2 --> OpenServer

Автор Alex_gs

Ответов: 2
Просмотров: 3271
Последний ответ 18.09.2021, 11:44:41
от Alex_gs