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

ludovic33

  • Новичок
  • 8
  • 0 / 0
Суть вот в чем:
(я не знаю как это словами описать, может тему и неправильно назвал... извините)

вот так выглядит инсталл, админка и сайт:


Попробовал WordPress установить, та же петушка...
Еще вчера все было нормально. Я только влез во все эти дела, не судите строго  :o
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Попробовал WordPress установить, та же петушка...
если "петушка" = "петрушка", то значит что вы как-то криво настроил сервер? (просто у тебя ISPManager открыт в закладке) - смотри error.log сайта
*

ludovic33

  • Новичок
  • 8
  • 0 / 0
да петрушка...  ^-^, а что я там должен увидеть? яж говорю, я чайник  :(
*

ludovic33

  • Новичок
  • 8
  • 0 / 0
Там много вот таких строчек:
[04/Sep/2009:01:35:42 +0400] "GET /index.php?option=com_content&task=view&id=5&Itemid=6 HTTP/1.0" 200 9435 "http://art-prt.ru/index.php?option=com_frontpage&Itemid=1" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13 WebMoney Advisor"
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
это access.log а нифига не error
я чайник
"тогда вкипяти мне чайку" (c) С.е.р.ы.й.В.о.л.к.
*

ludovic33

  • Новичок
  • 8
  • 0 / 0
error.log пустой
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
пути к файлам стилей и JS скриптам правильные? В конфиге live_site правильно указан?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

ludovic33

  • Новичок
  • 8
  • 0 / 0
 и absolute_path и лив... все правильно... на хостинге даже предустановки есть всех них... и говорю же вчера все работало, сегодня снес все и поставил СЕО версию 1.0.15 и все... трындец
*

ludovic33

  • Новичок
  • 8
  • 0 / 0
просвети меня, а где ети пути к JS и CMS искать?  ;D
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
дайте адрес сайта (если в сети)
P.S. и вообще давно переходить на 1.5
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

ludovic33

  • Новичок
  • 8
  • 0 / 0
www.art-prt.ru, только снес 1.5 ))) пишут 1.0 проще и надежней
*

ludovic33

  • Новичок
  • 8
  • 0 / 0
кстати 1.5 теперь тоже не работает  >:(
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
пишут 1.0 проще и надежней
на заборе тоже много что пишут
если вам говорит хоть что-то, что версия 1.0 больше не поддерживается основными разработчиками и многими кодерами...

По ситуации что я вижу - при обращении к http://www.art-prt.ru/templates/madeyourweb/css/template_css.css получаю ошибку 403 (доступ запрещен) и информацию что сервер это nginx/0.6.37
Joomla не работает под nginx как основным сервером, только если ставить его прослойкой после Apache при грамотной настройке сервера это даст результат

Потому в первую очередь я бы проверил CHMOD на файлы шаблона (стили, картинки), начинаем с 777 и идем ниже, пока не перестанет работать. Либо обращаемся к хостеру и спрашиваем у него - что происходит, почему при нормальном CHMOD (к примеру 755) на файл браузер не может получить к нему доступ
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Потому в первую очередь я бы проверил CHMOD на файлы шаблона (стили, картинки), начинаем с 777 и идем ниже, пока не перестанет работать. Либо обращаемся к хостеру и спрашиваем у него - что происходит, почему при нормальном CHMOD (к примеру 755) на файл браузер не может получить к нему доступ
на что они ответят:
ставьте на все файлы и папки куда ведется чтение/запись права 777 или переходите на VPS и настраивайте как вам нужно, менять конфигурацию сервера персоонально под ваши нужды никто небудет.
Вывод: распрощался с данным хостингом ;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает пункт меню в админке Новый материал

Автор NICTO

Ответов: 8
Просмотров: 4842
Последний ответ 01.05.2022, 19:01:23
от Maksdal
Вирусные ссылки на моём сайте вида http://pro-mani.ru/index.php/component/jooms

Автор webambrela

Ответов: 7
Просмотров: 15035
Последний ответ 22.05.2021, 20:20:50
от ProtectYourSite
Как внести изменения в установленном на хостинге сайте?

Автор mirolim

Ответов: 1
Просмотров: 4437
Последний ответ 19.03.2014, 17:26:02
от doctorgrif
В админке пропали заголовки материалов

Автор djos

Ответов: 0
Просмотров: 2391
Последний ответ 26.09.2013, 05:42:47
от djos
Пропал текст на сайте

Автор Жанна Дзотова

Ответов: 2
Просмотров: 3617
Последний ответ 15.04.2013, 10:11:32
от Werber