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

any99

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Есть сайт www.rosta.org.ua, не супер раскрученный, но тем не менее имеет тиц и пр и не хотелось его терять, да и нормально проиндексированный в поисковиках, недавно купили новый домен www.rosta.ua - нужно, чтобы посетители начали потихоньку ходить на новый домен, и тиц и пр плавно перетекли на новый домен, как это сделать?
*

sc@r@bey

  • Захожу иногда
  • 360
  • 55 / 5
  • делай, а потом спрашивай что не получилось!
*

any99

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
а можно подробнее, никогда не ставил?
*

sc@r@bey

  • Захожу иногда
  • 360
  • 55 / 5
  • делай, а потом спрашивай что не получилось!
например самый простой у меня стоит

Код
RemoveHandler .html
AddType application/x-httpd-php .html
Redirect / http://www.gelton.ru

бросаешь его в корень старого сайта, а прописываешь новый адрес и при заходе на старый адрес автоматически пользователь будет переадресован на новый.
*

any99

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
а поисковик в баню не закинет за автоматический редирект?
*

sc@r@bey

  • Захожу иногда
  • 360
  • 55 / 5
  • делай, а потом спрашивай что не получилось!
про это не могу сказать, может кто подскажет еще, почитай за что банят яндекс и другие, у них там кажись расписано за что банят

а поисковик в баню не закинет за автоматический редирект?
Чтобы редирект понравился поисковику нудно чтобы редирект был "permanent" или тоже самое как 301 редирект
*

any99

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
прошел 1 месяц с того времени, как была произведена смена домена, установил 301 редирект, посетители идут, а вот показатели на нуле, хотя прогнал сайт по базе каталогов, его проиндескировали все поисковики, вроде бы и апдейт яндекса уже был и не один раз, но пока что глухо... >:(
*

any99

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
только сейчас мне подсказали в чем была проблема - стоял редирект с www.rosta.org.ua, а rosta.org.ua - показывал старый сайт, потому показатели и не перетекали, когда понял - перетекать уже стало нечему.
Вот решение проблемы
RewriteEngine On
RewriteCond %{HTTP_HOST} ^rosta.org.ua [NC]
RewriteRule ^(.*)$ http://www.rosta.ua [L,R=301]
RewriteCond %{HTTP_HOST} ^www.rosta.org.ua [NC]
RewriteRule ^(.*)$ http://www.rosta.ua [L,R=301]
*

Ecspert

  • Захожу иногда
  • 426
  • 12 / 0
а как вообще перенести Joomla на другой домен?
просто скопировал файлы и перенёс базу - появляется ошибка: Direct Access to this location is not allowed.
*

FxPunter

  • Давно я тут
  • 691
  • 112 / 7
  • Э-эх!
а как вообще перенести Joomla на другой домен?
в файле конфигурации на надо бы подправить домены
*

Ecspert

  • Захожу иногда
  • 426
  • 12 / 0
благодарю конечна :) где-то тут я в другой теме писал, что просто установил джумлу и поверх неё переписал все файлы - тогда успешно заработало.. ) правда некоторые компоненты пришлось переставить..
*

DyakonFrost

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
RewriteEngine On
RewriteCond %{HTTP_HOST} ^rosta.org.ua [NC]
RewriteRule ^(.*)$ http://www.rosta.ua [L,R=301]
RewriteCond %{HTTP_HOST} ^www.rosta.org.ua [NC]
RewriteRule ^(.*)$ http://www.rosta.ua [L,R=301]

Это решение еще актуально? Или сейчас уже какие-то новые правила. Собираюсь переезжать на новый адрес и тоже хотелось бы настроить редирект правильно. Если все получится как скоро в поисковиках появится новый адрес сайта?

Вот решение проблемы
RewriteEngine On
RewriteCond %{HTTP_HOST} ^rosta.org.ua [NC]
RewriteRule ^(.*)$ http://www.rosta.ua [L,R=301]
RewriteCond %{HTTP_HOST} ^www.rosta.org.ua [NC]
RewriteRule ^(.*)$ http://www.rosta.ua [L,R=301]
это я сделал, работает прекрасно.
Но что нужно делать в инструментах Яндекса и Google?
Нужно ли там что нибудь перенаправлять, добавлять ли новый домен, или как то меняется старый?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительное название домена в Google

Автор web1

Ответов: 1
Просмотров: 2033
Последний ответ 18.12.2023, 12:56:21
от SeBun
Как продвигать сайт! (интернет-магазин)?

Автор Kooll5

Ответов: 31
Просмотров: 7434
Последний ответ 07.02.2023, 13:59:57
от Ратник
Вопрос про геопривязку домена и поддоменов

Автор 20strannik08

Ответов: 17
Просмотров: 2934
Последний ответ 20.11.2021, 17:54:52
от Byzi
Как изменить в поисковике на сайте имя домена?

Автор alex-morebook

Ответов: 2
Просмотров: 1120
Последний ответ 20.11.2021, 17:51:48
от Byzi
Один сайт, доступный через два домена (зеркало?)

Автор slepoy

Ответов: 2
Просмотров: 1349
Последний ответ 20.11.2021, 17:50:48
от Byzi