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

kart072

  • Захожу иногда
  • 57
  • 2 / 0
Наблюдаю такую штуку. Я не очень в мета и всё такое. Но как я понимаю, мета, это тексты, которые роботы понимают как описания.
Наблюдаю по идексации, что Яндекс точно не видит текстов дополнительных полей. Пару страниц исключил как совсем без информации. Много тысячный по страницам сайт очень удобен с доп. полями. Уж точно нет времени даже на короткие заметки, чисто для роботов, коuда страниц тысячи, десятки тысяч. Как сделать так, чтобы роботы видели описания в доп. полях, как обычную информаицию?
« Последнее редактирование: 12.05.2012, 15:57:43 от kart072 »
*

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
роботы видят только текст и картинки, не важно в каких полях он у тебя, важно чтобы текст весь вместе имел поисковый вес, страницы которые не насыщены информацией вполне воспримутся как "какашка" простите
хотелось бы увидеть сначало хотябы скриншот или ссылку того о чем мы говорим


meta description как правило Яндекс сам генерировать не обязан, вы должны предоставить ему описание своей страницы на сайте сами
*

kart072

  • Захожу иногда
  • 57
  • 2 / 0
Вот напримар. Яндекс исключил и написал: Документ не содержит текста

http://w-tuning.com.ua/bmw/3-e36/spoyl-bmw-e36/item/3476-s10047.html
*

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
текст в понятия яндекса это как минимум 1000 символов предложений текста....остальное лишь отрывки которые ему не интересны..
*

kart072

  • Захожу иногда
  • 57
  • 2 / 0
Да я как бы понимаю и Яндекс и его поведение. Только времени на тексты нет. А для людей делаю всё понятно как-бы и достаточно. Хотя есть одна идея. В дополнительных полях подописывать по пару предложений. Посмотрим, что получится.)
*

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
Да я как бы понимаю и Яндекс и его поведение. Только времени на тексты нет. А для людей делаю всё понятно как-бы и достаточно. Хотя есть одна идея. В дополнительных полях подописывать по пару предложений. Посмотрим, что получится.)
ему без разницы в полях или где, главное содержание на странице, вы сами же видите что страница имеет только слова и словосочетания а текста нет, значит страница не имеет смысла, есть у вас время сайтом заниматься или нет как правило Яндекс вообще не интересует
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Напишите в техподдержку Яндекса, вообще, это похоже на глюк, потому что текст есть. У меня Яндекс порой кушал ненужные страницы вообще без текста, а у вас полезная информация для пользователей есть. Пишите в саппорт, в общем.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
Напишите в техподдержку Яндекса, вообще, это похоже на глюк, потому что текст есть. У меня Яндекс порой кушал ненужные страницы вообще без текста, а у вас полезная информация для пользователей есть. Пишите в саппорт, в общем.
по мне так скажут мало...)ну посмотрим)
*

kart072

  • Захожу иногда
  • 57
  • 2 / 0
А Вы знаете что я со временем замечаю по индексации Яндекса и Google. Google быстро всё хавает и кидает в поиск много. Потом долго сеет и выбирает нужное. Яндекс, медленние сканирует, но вот вдруг через 2 недели кидает моих 93 страницы в поиск. Через 4 дня вижу оставил 23. Но те страницы, что выкинул и не нужны мне были. Через два дня закинул 427 в поиск (из 700). Ещё через два оставил 351. И те что выкинул, я с ним согласен, мне и не совсем нужны в поиске.
Я думаю, ему нужно время и сам разберётся и отфильтрует, поскольку вижу, что меняет своё мнение и сортирует, и я с ним согласен, что мне нужно берёт спустя короткое время, хотя и сразу выкинул.
Так что, делайте сайты для людей и всё будет ОК. Время ему нужно. Только по SEO нужно делать всё, чтобы быстрее и побольше страниц проиндексовал. А кучу таких страниц как я показал, что 2-3 выкинул из поиска, дал в поиск. Со временем и эти может закинуть.
*

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
ну и хорошо)
*

kart072

  • Захожу иногда
  • 57
  • 2 / 0
По мне. Так не хорошо. Потому, что их требования отличаются от  действий их программ (роботов!)! Может им ещё нужно много работать? А не сайтостроителям?
Если определили, что сайт каталог, так будьте любезны. понимайте, что длинная информация - отказ клиента на 100%. Так зачем мне нужна эта выдача?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрать http:// из поля формы регистрации и профиля

Автор lgmax

Ответов: 2
Просмотров: 1963
Последний ответ 20.01.2021, 18:52:22
от dizastill
Изменить тип дополнительного поля

Автор Abez

Ответов: 0
Просмотров: 974
Последний ответ 27.11.2019, 11:52:44
от Abez
K2 при добавлении дополнительного поля типа изображение, медиаменеджера нет

Автор designerandrey

Ответов: 0
Просмотров: 857
Последний ответ 16.04.2019, 17:09:22
от designerandrey
Вывести пустые доп поля К2 Joomla 3

Автор face2005

Ответов: 0
Просмотров: 912
Последний ответ 07.03.2019, 13:32:08
от face2005
Falang дополнительные поля К2

Автор face2005

Ответов: 0
Просмотров: 853
Последний ответ 06.03.2019, 13:01:32
от face2005