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

davidikul

  • Осваиваюсь на форуме
  • 47
  • 0 / 2
Здравствуйте, если зайти на сайт www.myhomebeer.ru выходит такая ошибка а если myhomebeer.ru такой ошибки нет Скажите пожалуйста как можно исправить ? можно ли сделать так чтобы если зайти в www.myhomebeer.ru автоматически попасть в myhomebeer.ru ?
*

oriol

  • Завсегдатай
  • 1042
  • 100 / 4
Re: Помогите исправить ошибку Joomla 1.5
« Ответ #1 : 16.08.2012, 21:16:35 »
добавь в .htaccess
Код
##------------------------- Custom redirects----------------------------##

########## Начало - Redirect с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

########## Начало - Redirect без www на с www
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

##############################################
# If you need to redirect some pages, or set a canonical non-www to   
# www redirect (or vice versa), place that code here. Ensure those     
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
##############################################
##====================== End - Custom redirects ====================##
*

davidikul

  • Осваиваюсь на форуме
  • 47
  • 0 / 2
Re: Помогите исправить ошибку Joomla 1.5
« Ответ #2 : 16.08.2012, 22:10:39 »
добавь в .htaccess
Код
##------------------------- Custom redirects----------------------------##

########## Начало - Redirect с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

########## Начало - Redirect без www на с www
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

##############################################
# If you need to redirect some pages, or set a canonical non-www to   
# www redirect (or vice versa), place that code here. Ensure those     
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
##############################################
##====================== End - Custom redirects ====================##
Добавил но нечего не изменилось... скажите пожалуйста как исправить ?
*

oriol

  • Завсегдатай
  • 1042
  • 100 / 4
Re: Помогите исправить ошибку Joomla 1.5
« Ответ #3 : 16.08.2012, 22:31:11 »
а htaccess.txt переименован в .htaccess
еще там есть такая секция

########## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
########## End - Custom redirects

надо именно в это место вставить
*

davidikul

  • Осваиваюсь на форуме
  • 47
  • 0 / 2
Re: Помогите исправить ошибку Joomla 1.5
« Ответ #4 : 16.08.2012, 22:43:49 »
В htaccess.txt у меня нету "########## Begin - Custom redirects" у меня там на букву B только "########## Begin - Joomla! core SEF Section" и "########## Begin - Rewrite rules to block out some common exploits" Помогите пожалуйста исправит готов заплатить вам.

а htaccess.txt переименован в .htaccess
еще там есть такая секция

########## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
########## End - Custom redirects

надо именно в это место вставить
*

oriol

  • Завсегдатай
  • 1042
  • 100 / 4
Re: Помогите исправить ошибку Joomla 1.5
« Ответ #5 : 16.08.2012, 23:00:40 »
свой пока переименуй а этот закинь
Спойлер
[свернуть]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 3660
Последний ответ 12.11.2023, 23:37:03
от all_zer
Нужно wiki под Joomla

Автор THE KILLERS

Ответов: 9
Просмотров: 9549
Последний ответ 05.11.2020, 20:56:47
от Kijv
Поиск статьи по url сайта в админке Joomla 1.5

Автор Tema

Ответов: 5
Просмотров: 2042
Последний ответ 14.08.2020, 07:16:44
от rsn
Не работает страница XML выдает ошибку: This page contains the following errors

Автор vitaliywolf

Ответов: 20
Просмотров: 18152
Последний ответ 07.05.2020, 22:24:16
от sivers
Не могу войти в админку Joomla 1.5

Автор MrSkif

Ответов: 14
Просмотров: 10415
Последний ответ 12.09.2018, 19:36:32
от PaLyCH