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

kosty@

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Jquery и градиент
« : 31.12.2013, 06:07:33 »
Есть менюшка класс .dd-nav с градиентом
  background: (#E5E5E5, #BABABA);
  background: -webkit-linear-gradient(#F3F2F2, #DFDDDD);
  background: -moz-linear-gradient(#E5E5E5, #BABABA);
  background: -o-linear-gradient(#E5E5E5, #BABABA);
  background: -ms-linear-gradient(#E5E5E5, #BABABA);
  background: linear-gradient(#E5E5E5, #BABABA);
третий день мучаюсь с JQuery чтобы при нажатии на кнопочку цвет градиента поменялся на один сплошной к примеру черный или красный. Подскажите как сделать или направте в нужном направление или хотя бы на пример ссылочку дать ччтобы можно было разобраться и все таки это сделать.
Сайт http://ppk54test.esy.es/ в данный момент кнопка Ч делаеться проктически все меняет вот осталось 3 места чтобы менялся цвет.
Кстати еще вопрос как сделать чтобы в куки сохранялось и не скидывался при переходе на страницу.

Заранее благодарен и всех с наступающим Новым годом!
*

kosty@

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: Jquery и градиент
« Ответ #1 : 31.12.2013, 08:15:44 »
ну или хотя бы чтобы при нажатии удалялась градиент заливка к примеру тыкаю на кнопочку и получаю меню с классом
background: #E5E5E5;
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Jquery и градиент
« Ответ #2 : 31.12.2013, 09:37:51 »
Смотрите событие - onClick - http://htmlbook.ru/html/attr/onclick
Для сохранения градиента стоит использовать - cookie - http://webcareer.ru/jquery-cookies-rabota-s-kukami-na-jquery.html

Для меню - есть класс - .active
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Jquery и градиент
« Ответ #3 : 31.12.2013, 12:03:50 »
Я вчера написал в этой теме, которая почему-то удалена (http://joomlaforum.ru/index.php/topic,283915.0/topicseen.html).
*

kosty@

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: Jquery и градиент
« Ответ #4 : 31.12.2013, 12:47:42 »
ну вот я смотрю удалена и как бы ответа не получил, я сеня уже подумывал чтоб при нажатии как нить background удалялся или менялся class с dd-nav на dd-nav1
*

kosty@

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: Jquery и градиент
« Ответ #5 : 31.12.2013, 13:12:37 »
хех все таки допинал и разобрался сначала просто пишем $('.dd-nav').toggleClass('dd-nav100500'); это дописывать к менюшке класс и использует его в качестве основного, а после этой строчки пишем что $('.dd-nav100500').css('backgroundColor', '#000000'); меняеться на черный и вуаля при нажатии получаем меню сплошного цвета залитая черным цветом
*

kosty@

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: Jquery и градиент
« Ответ #6 : 31.12.2013, 15:13:19 »
теперь читаю про куки не могу вкупить все примеры практически приведены через три кнопки я же хочу когда человек нажал на кнопку Ч и как фон изменился на черный а текст на белый и переходя по страницам он сохранялся.
Подключаю скрипт перед скриптом кнопок
<?php $doc =&JFactory::getDocument();
$doc->addScript($this->baseurl.'/templates/'.$this->template.'/js/jquery.cookie.js');
?>
а дальше там написано чтобы была доступна на всем сайте и на 5 дней пишем
$.cookie('cookie_name', 'cookie_value', {
    expires: 5,
    path: '/',
});
вопрос куда и как? в кнопку не катит не работает.
*

kosty@

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Re: Jquery и градиент
« Ответ #7 : 31.12.2013, 15:51:31 »
поидее я так понимаю надо сделать так чтобы при нажатии кнопки срабатывало цветовое изменение и записывались куки, как это сделать?  а после этого как прописать и где получение куки?
при нажатии на кнопку записываю в куки
$.cookie('knopki', 'cookie_value', {
    expires: 5,
    path: '/',
});
« Последнее редактирование: 31.12.2013, 17:06:40 от kosty@ »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает JQuery хотя он подключен

Автор dm-krv

Ответов: 3
Просмотров: 1301
Последний ответ 05.03.2019, 21:22:13
от dm-krv
Как модифицировать/усовершенствовать код jquery

Автор alex38ann

Ответов: 3
Просмотров: 969
Последний ответ 26.09.2017, 07:55:29
от alex38ann
JQuery, событие колеса мыши в FF

Автор fbr

Ответов: 8
Просмотров: 2423
Последний ответ 05.10.2016, 15:46:30
от vipiusss
[Решено] jQuery и работа над элементами в iframe

Автор ELLE

Ответов: 10
Просмотров: 18054
Последний ответ 22.06.2016, 14:32:52
от warlocksp
jquery.validation: работа с select и вывод сообщений о несоответствиях

Автор AlekVolsk

Ответов: 15
Просмотров: 4433
Последний ответ 07.09.2014, 20:57:14
от AlekVolsk