Новости 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 Ответов
  • 2417 Просмотров
*

SpecTR

  • Захожу иногда
  • 105
  • 10 / 0
Полазил я по нашему форуму так ничего толком и не надыбал.
И никак не могу понять что мне делать с своим сайтом.
Об индексации Яндекса:
Зарегистрировался я в webmaster.yandex.ru добавил свой сайт, загрузил карту сайта (генерит ее Xmap) и все без ошибок (Яша не ругался).
По истечении недельки второй захожу в Яшу и смотрю что у меня там полный пипец
[spoiler title="Скрин индексации страниц и структуры сайта"]
Общее положение:Страницы которые исключены там все по делу так как 6 не существует а остальные роботом были заприщены


Структура:

[/spoiler]
Сразу возникли вопросы:
1) почему структура такая, так как я использую sh404 и загружал Xmap в панель
2) почему в индексе только 14 страниц, так как в карте сайта которую загрузил передано 56 главных ссылок
3) почему не индексируються картинки с сайта и с галереи

Вы скажете, а в робот.тхт ты разрешил ? Потому сразу предлагаю текст этого файла
[spoiler title="robots.txt"]
Код
User-agent: *
Allow: /components/com_joomgallery/img_pictures/
Allow: /components/com_joomgallery/img_originals/
Allow: /components/com_joomgallery/img_thumbnails/
Allow: /images/stories/
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/

User-agent: Yandex
Host: ну тут доменное имя
[/spoiler]

Ну а теперь об индексации google:

robots.txt и карта сайта канешно те же  :)
но и тут не все так гладко:
[spoiler title="Начнем с карты сайта"]
Что нам выдает гугл:


А вот что на самом деле в sitemap/xml.html

[/spoiler]
И снова вопросы:
1) почему в индексе не все страницы ?
2) снова почему не индексируются картинки ?
а еще забыл сказать что картинки в карте сайта Яндекс просто игнорит

Ну и заключение:
1) На сайте не индексируются картинки (не отображаются в поиске по картинкам)
2) Не проиндексировались все страницы, ну это можно опустить так как сайт молодой (хотя уже больше 3 недель прошло)
3) В поиске есть страницы двух типов, то есть адреса страниц в поиске есть как с SEF (большинство) так и без (2 или 3 причем они старые и ведут не туда :()

Так вот нуждаюсь в ваших советах по доработке и изменению в продвижении сайта
« Последнее редактирование: 30.07.2010, 10:02:52 от SpecTR »
*

Joober

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: Индексация поисковиками ?
« Ответ #1 : 29.07.2010, 17:57:13 »
Цитировать
robot.txt

вообще то robots.txt как бы
*

SpecTR

  • Захожу иногда
  • 105
  • 10 / 0
Re: Индексация поисковиками ?
« Ответ #2 : 30.07.2010, 10:04:02 »
ошибку в тексте исправил, но суть дела от этого не меняется !
*

whois

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
Re: Индексация поисковиками ?
« Ответ #3 : 02.08.2010, 16:40:50 »
Во-первых, ваша директива Host не работает! команда Host должна идти сразу за Disallow(Allow) почитай внимательно http://help.yandex.ru/webmaster/?id=996567#996574
И яшин бот отлично принимает команду User-agent: *

robots.txt должен выглядеть так:
Код
User-agent: *
Allow: /components/com_joomgallery/img_pictures/
Allow: /components/com_joomgallery/img_originals/
Allow: /components/com_joomgallery/img_thumbnails/
Allow: /images/stories/
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Host: ну тут доменное имя

А во-вторых, три недели  ;D  радуйся что ты уже в индексе, хоть и не все страницы, некоторые месяцами ждут...
« Последнее редактирование: 03.08.2010, 06:03:15 от whois »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор leo78

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

Автор Влад

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

Автор Dmitriy M

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

Автор Strikerus

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

Автор iliya777

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