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

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Сабж..
Сайт на продвижении, подвергся вирусам (не Joomla), пока быстренько доделывал новый и перенес на Joomla везде попал под фильтры.
С яндексом отлично - отписались, не сразу но через 3 недели позиции вернулись.
Google отписался по аглицки типичной отмазкой и сайта совсем нет в выдаче...
Хотя лично по нему спрашивал у "сотрудницы" на их онлайн-встрече с вебмастерами.
Вот и кто они после этого?
И, главное, что делать то?
*

skai

  • Moderator
  • 1198
  • 153 / 1
  • skaiseo
Re: Ну и как снять фильтр в Гоше?
« Ответ #1 : 03.04.2013, 19:28:14 »
У меня прокатывали как слезливые обращения от имени клиента, так и сухие письма от имени директора мегакомпании находящегося в поисках справедливости )). Готовили текст содержащий что-то вроде: - В январе хостинг на котором находился наш сайт был взломан и все сайты на сервере заражены вирусом. Google совершенно справедливо удалил наш сайт из поиска, потому что мы не сразу заметили заражение. Спасибо за заботу о наших пользователях! Благодаря вам, мы предприняли ряд самых серьёзных мер по защите своего сайта в будущем: - перенесли на более дорогой и надёжный сервер, сменили CMS сайта (в процессе создания нового особое внимание было уделено его безопасности), приняли в штат сотрудника отвечающего за исправную работу сайта, сделали всё возможное чтобы подобный инцидент не повторился. Теперь наш сайт полностью исправен и готов снова помогать пользователю находить нужную информацию в поисковой системе Google. Просим вас снять запреты на размещение нашего сайта в поиске и дать нам второй шанс! ..Большое спасибо! Директор (системный администратор) сайта xxxx...

..как-то так. Поменьше умных слов - без палева. не надо показывать свой профессионализм и тем более даже косвенно показывать что с сайтом работает SEOшник (пощады не будет). Обязательно ссылку на сайт, ссылки на страницы которые были заражены (если не всё) и т.п. - чтобы сапорт тут же мог перейти и увидеть глазками что всё тип-топ.

значение имеет только текст сообщения - там тоже люди работают (и обязательно подтверждающие ссылки в письме).
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Ну и как снять фильтр в Гоше?
« Ответ #2 : 03.04.2013, 19:32:37 »
А писать из панельки?
По русски или по английски?

И если мне уже отписка была с просьбой не писать больше - есть ли смысл?

ЗЫ. Тексты примерно так обычно и составляю, он был одинаков примерно для Яндекса и Google..
*

skai

  • Moderator
  • 1198
  • 153 / 1
  • skaiseo
Re: Ну и как снять фильтр в Гоше?
« Ответ #3 : 03.04.2013, 19:36:08 »
из панели и только по русски.

И если мне уже отписка была с просьбой не писать больше - есть ли смысл?
ну и что.. пофиг. Можешь написать от имени директора компании с серьёзной подачей (типа до этого писал администратор которого вы наняли специально чтобы такие проблемы не повторялись больше никогда).
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Ну и как снять фильтр в Гоше?
« Ответ #4 : 03.04.2013, 19:40:55 »
Ну как вариант - написать самому директору компании.
Под моим акком видно кто пишет, а регать левый акк..  там же проверка по SMS..
*

skai

  • Moderator
  • 1198
  • 153 / 1
  • skaiseo
Re: Ну и как снять фильтр в Гоше?
« Ответ #5 : 03.04.2013, 20:35:14 »
подготовь для него текст и пусть отправляет.
Наполнение вашего сайта - 1т.р. стр. (текст, изображения, мета, перелинковка). Гарантия высокого ранжирования. SEO консультация в подарок.
----------------------------------------------------------------------------------------------
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как не попасть под спам фильтр?

Автор reasons

Ответов: 11
Просмотров: 2438
Последний ответ 19.05.2013, 12:34:42
от voland
Загоняем сайт под фильтр

Автор Loasa

Ответов: 7
Просмотров: 1943
Последний ответ 22.03.2013, 15:49:56
от Rex_One