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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Admin Tools Pro или RSFirewall
« Ответ #30 : 09.11.2017, 21:26:20 »
речь не о количестве запросов, 1-3 или 20-30 - это неважно особо. речь о том, что это вполне себе обычные запросы с точки зрения обычного пользователя. и если в каком либо сочетании запроса есть проблема - надо решать проблему, а не прятать голову в песок :) потому что при увеличении количества посещений она все равно возникнет. надо смотреть на чем происходит затык, смотреть лог медленных запросов и т.д. если никаких аномалий нет, а считаем что без DDOS никаких аномалий нет, то сайт должен работать без всяких блокировок юзеров. а что делает админ тулз? просто отсеивает частые запросы. красота :) часть юзеров отвалилась, но кому это важно? :) зато мы вписались в отведенный лимит процессорного времени :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Admin Tools Pro или RSFirewall
« Ответ #31 : 10.11.2017, 06:13:30 »
Вы не правы. Админ тулз у меня стоит более пяти лет. За это время небыло ни одной жалобы на недоступность моих ресурсов пользователю из-за того, что его приняли за DDos. Мой основной сайт связан с продажами расширений, по этому пользователи жалуются когда сайт им недоступен (бывает по нескольким провальным авторизациям блочит пользователя).
Не надо выдавать голословные утверждения. Если уже хочется найти изъян в этом инструменте, проанализируйте его код прежде чем что-то заявлять.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Admin Tools Pro или RSFirewall
« Ответ #32 : 10.11.2017, 06:25:54 »
Я для этих целей компоненты не ставлю, маленький скрипт решает вопросы с доступом, никого не баня.
У вас в скрипте ошибка, строка 228 $ips_dnsbl, должно быть $ips->dnsbl. А лучше сделать свойства приватными и задавать их конструктором.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Admin Tools Pro или RSFirewall
« Ответ #33 : 10.11.2017, 07:44:10 »
я тоже, кстати, за такие решения.
несколько раз сталкивался. когда с одного IP долбят массой запросов и вешают сайт, потом меняют его и по-новой.
такое решение на недорогих тарифах действительно пригождается.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Admin Tools Pro или RSFirewall
« Ответ #34 : 10.11.2017, 09:07:40 »
Не надо выдавать голословные утверждения. Если уже хочется найти изъян в этом инструменте, проанализируйте его код прежде чем что-то заявлять.
само собой, уже давно проанализировал :) думаете я просто как баба яга - против? :) прежде чем убедится в его вреде я его щупал неоднократно. и лично попадал в ситуацию не один раз, когда админ тулз блочил доступ. на форуме есть темы, буквально недавно была, когда он заблочил наглухо вход в админку для владельца. и так далее.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Admin Tools Pro или RSFirewall
« Ответ #36 : 10.11.2017, 09:19:09 »
конечно не отменяет :) я поэтому и написал, что полезность - понятие субъективное :) для меня гораздо важнее не заблочить того одного, который поймал вирус, и теперь от него идет перебор пароля. а вдруг он окажется крупным клиентом? или ситуация, когда отправили рассылку, и из корпоративной сети выполняется одновременный вход 3-4 человек. ну вот получили они одновременно письма и одновременно на линк кликнули. IP внешний один. все, ловите все 403? :) и так далее. а потом сели, посчитали сколько это будет 1% таких вот возможных блокировок в денежном выражении по итогам месяца, и сделали каждый для себя субъективный вывод - полезное расширение или не очень :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: Admin Tools Pro или RSFirewall
« Ответ #37 : 10.11.2017, 10:02:30 »
У вас в скрипте ошибка, строка 228 $ips_dnsbl, должно быть $ips->dnsbl. А лучше сделать свойства приватными и задавать их конструктором.
Благодарю! Премного! ))

А вообще буду рад любой конструктивной критике, раз уж вы полезли в код, а так же дельным советам. Ибо есть интерес допилить этот скрипт, а так же сделать второй на его основе с более широкими возможностями (waf, логирование, перенаправления, блокировка стран и т.п.). Расширение будет бесплатным.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Admin Tools Pro или RSFirewall
« Ответ #38 : 10.11.2017, 10:33:45 »
В вопросах безопасности я не особо компетентен, по этому врядли что могу подсказать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

RSFirewall не пускает, хотя ввожу верный пароль

Автор Alex_iPod

Ответов: 1
Просмотров: 2448
Последний ответ 10.03.2023, 15:09:41
от Alex_iPod
RSFireWall - как сделать файл Hashes для новой версии Joomla

Автор Lopes-popes

Ответов: 11
Просмотров: 2738
Последний ответ 18.12.2019, 15:41:26
от Театрал
Admin Tools сброс пароля

Автор saschka

Ответов: 6
Просмотров: 6349
Последний ответ 15.01.2018, 16:41:28
от SeBun
Admin Tools Pro

Автор Ingener

Ответов: 59
Просмотров: 13657
Последний ответ 11.10.2017, 12:15:21
от ProtectYourSite
Admin Tools Professional блокируеь отправку сообщений из модуля обоатного звонка Joomly Callback

Автор roma_sanbl4

Ответов: 0
Просмотров: 2024
Последний ответ 03.01.2016, 13:49:21
от roma_sanbl4