Новости 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 Ответов
  • 3136 Просмотров
*

kolllak

  • Новичок
  • 9
  • 0 / 0
Доброго времени суток.
Излагаю ситуацию:
С моего аккаунта у хостера начал лететь спам. Аккаунт был заблокирован хостером до решения проблем.
Были изменены пароли, удалены "левые" эмейлы и спам прекратился.
Хостер разблокировал аккаунт.
После разблокировки 2 сайта работают и функционирую полностью нормально, а вот с третим проблемы :
Сам сайт рабочий, все отображается как и было, зайти в админку можно, но:
пользователи, менеджер материалов, компоненты, разделы меню - все что имеет "вес" - все выбивает 500 при заходе. Ничего нельзя отредактировать.
.htaccess и configuration.php не менялись мной, поддержка хостера говорит что никаких изменений не было с их стороны.
Плагин авторизации включен
Первый лог (Логи использования Apache) :
Код
*Мой айпи* - - [07/Apr/2013:19:38:13 +0300] "GET /administrator/index.php?option=com_content HTTP/1.0" 500 290 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:14 +0300] "GET /administrator/index.php HTTP/1.0" 200 4919 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:15 +0300] "GET /administrator/index.php?option=com_content HTTP/1.0" 500 290 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:16 +0300] "GET /administrator/index.php HTTP/1.0" 200 4919 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:20 +0300] "GET /administrator/index.php?option=com_sections&scope=content HTTP/1.0" 200 4773 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:22 +0300] "GET /administrator/index.php HTTP/1.0" 200 4919 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:24 +0300] "GET /administrator/index.php?option=com_sections&scope=content HTTP/1.0" 200 4773 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:25 +0300] "GET /administrator/index.php HTTP/1.0" 200 4919 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:27 +0300] "GET /administrator/index.php?option=com_categories&section=com_content HTTP/1.0" 200 4947 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:28 +0300] "GET /administrator/index.php HTTP/1.0" 200 4919 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
*Мой айпи* - - [07/Apr/2013:19:38:30 +0300] "GET /administrator/index.php?option=com_categories&section=com_content HTTP/1.0" 200 4947 "
*Мой сайт*/administrator/index.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"

Второй лог (Логи ошибок Apache):
(при заходе в админку тут никаких ошибок не выдает)
Код
[Sun Apr 07 19:28:15 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/404.shtml, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css 
[Sun Apr 07 19:28:15 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/templates/siteground-j15-24/images/blue, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:15 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/404.shtml, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/templates/siteground-j15-24/images/.jpg, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/404.shtml, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/templates/siteground-j15-24/images/blue, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/404.shtml, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/templates/siteground-j15-24/images/.jpg, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/404.shtml, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/templates/siteground-j15-24/images/blue, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css
[Sun Apr 07 19:28:16 2013] [error] [client *Мой айпи*] File does not exist: /home/*/domains/*Мой сайт*/public_html/404.shtml, referer: http://*Мой сайт*/templates/siteground-j15-24/css/template.css

/administrator/index.php?option=com_content
/administrator/index.php?option=com_menus
/administrator/index.php?option=com_modules
/administrator/index.php?option=com_plugins
/administrator/index.php?option=com_banners
/administrator/index.php?option=com_config

Вот ссылки (их больше) на которые идет 500-я ошибка.
То-есть сайт практически полностью закрыт от меня для редактирования, либо какого-то внесения данных.

Рабочие ссылки (на которые пускает без 500. доступно для редактирования):

/administrator/index.php?option=com_contact (менеджер контактов. создано 2)
/administrator/index.php?option=com_templates (менеджер шаблонов - открыты для выбора)
/administrator/index.php?option=com_languages (языки. открыты для выбора рус, англ)
/administrator/index.php?option=com_sections&scope=content  (менеджер разделов - ни одного не создано)
/administrator/index.php?option=com_categories&section=com_content (менеджер категорий - ни одной не создано)

Надеюсь изложил в более-менее ясной форме, просьба не хаять, увы во всем этом я ноль. Буду рад хоть какой-то помощи с описанием как для новичков и чайников.

Заранее благодарен за любую оказанную помощь.
с ув. Сергей.
*

kolllak

  • Новичок
  • 9
  • 0 / 0
Возможно тыкаю пальцем в небо, но случайно проблема не в таблице jos_components в базе ?
Перечислю столбики и параметры в них на примере менеджера материалов:

name "Articles"
link "option=com_content"
menuid "0"
parent "0"
admin_menu_link "*пусто*"
admin_menu_alt "*пусто*"
option "com_content"
ordering "0"
admin_menu_img "*пусто*"
iscore "1"

params: (*их тут много, список ниже*)
show_noauth=0
show_title=0
link_titles=0
show_intro=0
show_section=0
link_section=0
show_category=0
link_category=0
show_author=0
show_create_date=0
show_modify_date=0
show_item_navigation=0
show_readmore=1
show_vote=0show_icons=0
show_pdf_icon=0
show_print_icon=0
show_email_icon=0show_hits=0
feed_summary=0
filter_tags=
filter_attritbutes=

enabled "1"

Может кто в этом списке увидит какую-то неправильность...
« Последнее редактирование: 12.04.2013, 18:00:38 от kolllak »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

kolllak

  • Новичок
  • 9
  • 0 / 0
перезалей файлы /administrator
Перезалил с нескольких бекапов. Даже прошлогодних. Итог - ноль.
*

kolllak

  • Новичок
  • 9
  • 0 / 0
draff, спасибо за попытку помочь, сайт банально был хакнут через template.
Хороший друг, программист, помог восстановить сайт из древнего дампа.
Все заработало. Проблема была не в БД и не в папке Администратор ( Но попытка не пытка )
*

andretty

  • Новичок
  • 1
  • 0 / 0
kolllak Привет. Если есть возможность пожалуйста сообщи как ты решил данную проблему, у меня ситуация один в один с твоей (рассылка, восстановление и отказ в доступе через админку для модерации сайта) Что нужно восстанавливать куда смотреть. очень буду признателен если сможешь подсказать как решить проблему.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

simpleform2 ошибка ajax error в Google chrome

Автор safronoff343

Ответов: 1
Просмотров: 1176
Последний ответ 05.06.2020, 20:36:42
от safronoff343
Ошибка #1050 при переносе базы данных на хостинг

Автор Ksen

Ответов: 7
Просмотров: 24781
Последний ответ 16.03.2020, 17:47:29
от Petrovich
Проблема со входом в Админ панель после переноса сайта

Автор Vlad Ermolaev

Ответов: 11
Просмотров: 3943
Последний ответ 12.12.2019, 15:48:25
от SeBun
При попытке войти в админку 404 ошибка компонента

Автор omezik

Ответов: 4
Просмотров: 2841
Последний ответ 31.08.2019, 22:41:46
от Taatshi
Ошибка в компоненте CKForms

Автор Vas80

Ответов: 9
Просмотров: 1682
Последний ответ 22.04.2019, 13:34:48
от sivers