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

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Есть раздел сайта, который полностью переезжает на новых домен.
Как правильнее будет?
1) отдать отдельно весь раздел 301 на новый сайт?
2) отдать отдельно весь раздел 301 на главную?
3) отдать отдельно весь раздел 303 на главную?
« Последнее редактирование: 29.05.2014, 21:07:06 от Aspik »
Мои расширения - http://eco-joom.com/ru/
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
1а) весь раздел через 301 редирект на соответсвующие странички нового сайта
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
все содержимое .htaccess при этом:
Код
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://новый_домен/$1 [R=301,L]
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В общем-то, это 301 редирект на весь сайт, но "под конкретный раздел" - как это вообще реализуемо?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Я боюсь что из-за 301 он склеет 2 сайта. Может вообще 307 ?
Мои расширения - http://eco-joom.com/ru/
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Я имел ввиду разделение самого сайта на 2: сделать копию, в копии вычистить все, кроме нужного раздела, в оригинале вычистить раздел и поставить редирект раздела на копию?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Я боюсь что из-за 301 он склеет 2 сайта. Может вообще 307 ?
Что значит склеет?
Сайты же разные.
А фильтр аффилята замечен только у Яндекса.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Я имел ввиду разделение самого сайта на 2: сделать копию, в копии вычистить все, кроме нужного раздела, в оригинале вычистить раздел и поставить редирект раздела на копию?
Вопрос вроде не про то, как это сделать, а какой метод использовать.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В общем-то, это сопутствующий вопрос-уточнение, непосредственно связанный с основным вопросом
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Код
RewriteEngine on
RewriteRule ^раздел/(.*)$ http://новый_домен/раздел/$1 [R=301,L]
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Что значит склеет?
Сайты же разные.
А фильтр аффилята замечен только у Яндекса.
Как все домены клеет.
Фильтр то это очень важная вещь. Поэтому скорее всего надо сделать 301 всего раздала на главную.
А все страницы на платную ускоренную переиндексацию всего сайта.
Чтобы Яндекс их быстро перетер. И тогда получается PR раздала перейдет весь на главную.
Мои расширения - http://eco-joom.com/ru/
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
надо сделать 301 всего раздала на главную.
Тогда чуть проще:
Код
RewriteRule ^раздел/(.*)$ http://новый_домен/ [R=301,L]
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Что за платная переиндексация?
Какое отношение яндекса к PR?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
У яндекса есть принудительная моментальная индексация, списывают абон.плату с яд
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
У яндекса есть принудительная моментальная индексация, списывают абон.плату с яд
Ого, давно?
Что-то не вижу.. где это в вебмастере?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Раньше было в вебмастере, года 3 как назад убрали, но все еще можно через тп, было можно в конце прошлого года
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Что за платная переиндексация?
Какое отношение яндекса к PR?
>>Какое отношение яндекса к PR?

Яндекс к PR? Вопрос некорректен. Никакого.
Яндекс в ответе фигурирует лишь как поисковик активно использующий фильтр "Аффилиат". Поэтому надо моментально переиндексировать чтобы не попасть под него.
У страниц в разделе есть свой PR, который терять не хочется. Поэтому перекачка всего его на главную хороший процесс.

>>Что за платная переиндексация?

Делается очень просто.
1) У всего раздела last-modified - сегодняшняя дата.
2) Пинг по всем сервисам и лентам, пригоняем так сказать быстроботов всех поисковых систем. Я пользуюсь letusindex.com

Мои расширения - http://eco-joom.com/ru/
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
>>Что за платная переиндексация?
Делается очень просто.
1) У всего раздела last-modified - сегодняшняя дата.
2) Пинг по всем сервисам и лентам, пригоняем так сказать быстроботов всех поисковых систем. Я пользуюсь letusindex.com
Уж больно сложно, да и дорого.
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Уж больно сложно, да и дорого.
Дорого?
0.5$ за 700 страниц или 2$ за 10000 страниц   http://letusindex.com/%D1%86%D0%B5%D0%BD%D1%8B
 
Мои расширения - http://eco-joom.com/ru/
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
8 баков в месяц - это прилично, яндекс брал 400р, пинг раз в час.
Сам не пользовался, но наблюдал, как в моем присутствии на местном деревенском заводе админ общался с тп, тогда просто взял на заметку, а сейчас вспомнил.
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
8 баков в месяц - это прилично, яд брал 400 р за год, пинг раз в час

Кому как :) Я считаю за 1 день отправить 10000 страниц в индекс за 2$ это нормальная цена.
Мои расширения - http://eco-joom.com/ru/
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
О, не настаиваю :) здесь - каждому свое
По теме-то еще есть вопросы? А то спать пойду :)
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Да пока нет.
Столкнулся со страной вещью. Замена редиректов по шаблону на мультиязычных сайтах не работает. Причем даже основной, типа с без www на www, не будет работать.
« Последнее редактирование: 29.05.2014, 21:10:21 от Aspik »
Мои расширения - http://eco-joom.com/ru/
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
С мультиязычностью не работал, не подскажу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как найти и определить сервис раскрутки сайта?

Автор Gosha5767

Ответов: 0
Просмотров: 5129
Последний ответ 08.07.2025, 17:19:50
от Gosha5767
Как продвигать сайт! (интернет-магазин)?

Автор Kooll5

Ответов: 31
Просмотров: 7450
Последний ответ 07.02.2023, 13:59:57
от Ратник
Как вывести в сниппете название статьи, а потом название сайта?

Автор gorbi_U

Ответов: 0
Просмотров: 1101
Последний ответ 18.01.2022, 18:29:22
от gorbi_U
Один сайт, доступный через два домена (зеркало?)

Автор slepoy

Ответов: 2
Просмотров: 1349
Последний ответ 20.11.2021, 17:50:48
от Byzi
Яндекс не индексирует вообще картинки с сайта

Автор Девушка с веслом

Ответов: 6
Просмотров: 1258
Последний ответ 10.05.2021, 17:21:18
от xpank