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

poog

  • Новичок
  • 3
  • 0 / 0
Вчера заливал новый сайт на хостинг клиента, залил дамп, начал заливать файлы и увидел, что там уже есть какие-то индексные файлы. Ну, поскольку клиент не предупреждал, я их переложил в папочку "old" и разместил в паблик_хтмл свои. Оказалось, что у клиента есть еще основной домен, на котором другой сайт на Joomla(который нужно было сохранить) и после моих манипуляций он естественно перестал фурычить. Сегодня я перенес новый сайт в отдельную директорию, прописал в хтаксесе перенаправление с нужного адреса в эту папку и восстановил прежнюю структуру старых файлов.
Новый сайт заработал, а старый по-прежнему выдает фигню. Базу старого сайта не трогал. Как исправить? Что еще попробовать?

http://somedomain.com/

Еще момент - положил файл 1.txt в корень и если набирать http://somedomain.com/1.txt то получаешь ту же абракадабру. То есть не содержимое этого файла.
Пробовал убирать htaccess вообще - тот же эффект.
« Последнее редактирование: 17.04.2013, 13:36:51 от poog »
*

poog

  • Новичок
  • 3
  • 0 / 0
Re: Сайт выдает полнейшую абракадабру
« Ответ #1 : 17.04.2013, 08:59:49 »
Что-то не позволяет прочитать содержимое домашней директории домена viannacompany.com. Только вот что?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Сайт выдает полнейшую абракадабру
« Ответ #2 : 17.04.2013, 09:09:59 »
а домен припаркован к хостингу?
Стучи к хостеру. Или пусть клиент настраивает домен.Прописывает ns.server хостинга у регистратора домена, хостер правит конфиг хостинга для нового домена,etc
п.с.
А так новый домен уже работает. Ну удалять не буду, так как инфа может полезна будет кому то.
Или где кеш сервера со старого домена. Но в любом случае- стучи к хостеру.
Уточни, что и где прописал для перенаправления в .htaccess ?
« Последнее редактирование: 17.04.2013, 09:24:33 от draff »
*

poog

  • Новичок
  • 3
  • 0 / 0
Re: Сайт выдает полнейшую абракадабру
« Ответ #3 : 17.04.2013, 12:21:16 »
Сегодня хостер все сделал!

В .htaccess добавлял следующее:

Код
RewriteEngine On 
 RewriteRule ^newdirectory/ - [last]
 RewriteCond %{HTTP_HOST} (www.)?newdomain.ru [nocase]
 RewriteRule (.*) newdirectory/$1 [last]



Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Помогите решить ошибку

Автор azumi

Ответов: 21
Просмотров: 4408
Последний ответ 08.09.2020, 18:47:08
от gartes
Не работает кнопка отправить ?

Автор warlocksp

Ответов: 6
Просмотров: 1609
Последний ответ 10.03.2017, 11:34:50
от warlocksp
Joomla 1.5.23 обновление до самой новой версии

Автор AlexeyPavlov

Ответов: 6
Просмотров: 2942
Последний ответ 12.08.2015, 16:30:53
от SeBun
Где найти перечень отличий версий Joomla 1.5?

Автор ABCroNews

Ответов: 3
Просмотров: 9542
Последний ответ 28.07.2015, 12:35:00
от ShniderHost
При индексации добавляются фразы "porn"

Автор Tsepov

Ответов: 6
Просмотров: 2074
Последний ответ 08.02.2015, 12:41:43
от Mihanja80