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

sensiblen

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Как обычно вношу какие-то изменения в текст, нажимаю "Сохранить". Захожу на главную страницу проекта, нажимаю "обновить". Но обновления не происходит, все по-старому  >:(. Через какое-то время да, все меняется, но не разобрался из-за чего сразу не меняется, а только потом (вследствие невыясненных или незамеченных мной причин). В чем дело?
P.S. У меня Joomla 1.5 просто не разобрался куда вносит вопрос, сорри  crazy!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Не сразу применяются изменения
« Ответ #1 : 11.09.2009, 00:54:16 »
Смотрите настройки кэш.
пользуйтесь поиском по форуму
*

sensiblen

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Не сразу применяются изменения
« Ответ #2 : 11.09.2009, 07:33:21 »
В поиске ничего не нашел...А какие настройки должны быть по кэшу?
*

sensiblen

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Не сразу применяются изменения
« Ответ #3 : 11.09.2009, 21:38:43 »
 Не могу разобраться с этой проблемой  :'(. Если это кэш, то что надо сделать? Я пробовал чистить кэш. Ничего не помогает. Упрямо не хочет применять изменения! Применяет только спустя какое-то время непонятно от чего.  Помогите разобраться, пожалуйста!
*

sergeln

  • Новичок
  • 6
  • 0 / 0
Re: Не сразу применяются изменения
« Ответ #4 : 11.09.2009, 21:51:42 »
Кроме кэша на сервере очисти кэш в браузере. Редко у кого еще стоит кеширующий прокси на локальном компьютере, тоже надо кэш сайта почистить.
*

sensiblen

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Не сразу применяются изменения
« Ответ #5 : 11.09.2009, 21:54:50 »
В браузере и чистил. В административной панели нашел "очистить кэш". Очистил. Ничего не поменялось, только почему-то тормозов прибавилось и краказябры появились на необновляемой главной странице
« Последнее редактирование: 11.09.2009, 22:24:21 от sensiblen »
*

sensiblen

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Не сразу применяются изменения
« Ответ #6 : 11.09.2009, 23:57:06 »
Вроде разобрался. Тьфу-тьфу!
Тормоза были от перегруженности HTML-кода 10-километровым тэгом <span style="color: yellow;">. Вручную удалил все эти лишние тэги. Тормоза исчезли. Добавил в .htaccess  строчку - AddDefaultCharset UTF-8. Вроде краказябры пока не появляются. Очистил в Инструментах "кэш" и удалил "устаревший кэш" - начали применяться изменения сделанные в редакторе материалов.

У меня только вопрос: Перед обновлением страницы всегда нужно очищать кэш и удалять устаревший кэш?
Если я этого не делаю обновлений не происходит  :(
*

neslikhan

  • Новичок
  • 5
  • 0 / 0
Re: Не сразу применяются изменения
« Ответ #7 : 28.01.2014, 01:20:29 »
Извините, я новичок. Не знаю кому и куда задать свой вопрос. Создала свой первый сайт  на Joomla. Сначала все было хорошо, а теперь каждый раз после любых изменений приходится чистить кэш. Невозможно удалять товар из корзины в браузере сайта или вносить комментарии. Изменений никаких не будет, пока не очищу кэш в админке Joomla. Что делать?
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Re: Не сразу применяются изменения
« Ответ #8 : 28.01.2014, 09:59:09 »
-чистить кеш
-поставить плагин для этого
-отключить кеш
*

neslikhan

  • Новичок
  • 5
  • 0 / 0
Re: Не сразу применяются изменения
« Ответ #9 : 29.01.2014, 14:31:47 »
Сама нашла ответ. Почему невозможно было делать любые изменения на сайте. Даже чтобы добавить что-то в корзину или удалить из корзины, приходилось чистить кэш в админке Joomla. Только тогда изменения вступали в силу. А нужно было просто отключить публикацию плагина Система-Кэш. Теперь все работает отлично. Хотя на сайте еще много чего нужно исправить и доработать, но с главной проблемой справилась :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Favicon в поиске яндекса исчезли сразу со всех сайтов

Автор veblik

Ответов: 5
Просмотров: 2404
Последний ответ 12.12.2015, 14:42:13
от veblik
Выпадающий текст (сразу открывается)

Автор Netali

Ответов: 0
Просмотров: 1578
Последний ответ 10.10.2014, 16:26:12
от Netali
SQL команда для изменения размера шрифта статей посредством phpMyAdmin

Автор Adam.K

Ответов: 9
Просмотров: 3193
Последний ответ 23.12.2013, 19:56:06
от Shustry
Админка сразу перенаправляет на главную

Автор MUSTANG651

Ответов: 2
Просмотров: 2532
Последний ответ 17.04.2013, 08:38:36
от draff
Сразу после установки Joomla не могу зайти на сайт под своим именем

Автор exXtaZzy

Ответов: 1
Просмотров: 1373
Последний ответ 22.12.2012, 04:45:48
от arma