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

vadyani4

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Народ дайте компетентное мнение, если со страницы можно попасть в любой раздел сайта в один клик по средствам нав.меню или других модулей.Стоит ли в таком случае создавать непосредственно в тексте статьи анкор ссылки?так как используя скажем сервис http://www.cy-pr.com/tools/analyzer/  они (анкор ссылки) будут дублями уже существующих?

Сайт не большой пока, и при использование данного сервиса я получаю количество ссылок на странице, так вот если использовать анкор ссылки то они продублируют уже текущие ссылки найденные данным сервисом на странице.

Или же использование данного сервиса не рекомендуется для данной оценки, тогда какой сервис использовать?

Помогите пожалуйста!

Поставлю вопрос по другому, насколько негативно влияют дубли ссылок ( не дубли страниц по разным ссылка) а именно одинаковые ссылки в количестве 2 и более штук, с одной страницы на один и тот же материал. Влияние для ПС естественно...
« Последнее редактирование: 09.02.2012, 17:37:06 от vadyani4 »
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: перелинковка глазами сервиса
« Ответ #1 : 09.02.2012, 17:44:32 »
анкор-ссылки именно как ссылки не учитываются, т.е. считается что это одна ссылка - вообще для навигации и удобства полезно использовать в разумных пределах

если на странице есть две одинаковых ссылки (не анкорные), - Google только первую учтет, Яндекс все учитывает
*

vadyani4

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: перелинковка глазами сервиса
« Ответ #2 : 09.02.2012, 17:49:06 »
Спасибо за ответ ^-^

То есть для Google вес одинаковых ссылок будет всегда один и тот-же?
А вот для яндекса вес ссылок распределиться между всеми ее копиями - то есть потеря веса, я правильно понимаю?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Рекомендации PageSpeed - используйте кэш браузера &

Автор leo78

Ответов: 21
Просмотров: 5966
Последний ответ 31.03.2018, 18:40:58
от stendapuss
Заменить ремаркетинг на Контекстный тарг

Автор Влад

Ответов: 0
Просмотров: 1037
Последний ответ 07.08.2017, 18:19:17
от Влад
1200 внутренних ссылок на каждой странице

Автор Dmitriy M

Ответов: 0
Просмотров: 992
Последний ответ 16.03.2017, 18:25:37
от Dmitriy M
Микроразметка schema.org vs validator HTML

Автор Strikerus

Ответов: 3
Просмотров: 1874
Последний ответ 15.02.2017, 12:11:20
от dmitry_stas
исключения из redirect 301

Автор iliya777

Ответов: 1
Просмотров: 1324
Последний ответ 12.01.2017, 15:15:20
от iliya777