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

den1762

  • Захожу иногда
  • 105
  • 3 / 0
Как правильнее/понятнее для поисковиков сделать структуру многоязычного сайта?

Вариант 1
www.domain.ru/ru/... (Русскоязычная часть)
www.domain.ru/en/... (Англоязычная часть)


Вариант 2
www.domain.ru/... (Русскоязычная часть)
www.domain.ru/en/... (Англоязычная часть)


Вариант 3
www.domain.ru/... (Русскоязычная часть)
www.domain.com/... (Англоязычная часть)


Для Варианта 3 домен в зоне «com» есть. Но, как понимаю, что для этого варианта необходимо продвигать зону «com» отдельно от зоны «ru».

Какой вариант наиболее правильный?  !
*

Webb

  • Захожу иногда
  • 304
  • 19 / 2
  • rusinmd
Остановился бы на 2.  А вот 3 полный ацтой, двигать совершенно другой домен.
*

den1762

  • Захожу иногда
  • 105
  • 3 / 0
Остановился бы на 2.  А вот 3 полный ацтой, двигать совершенно другой домен.

Вопрос по Варианту 2. Его лучше выбрать, из-за удобства для поисковиков или ради эстетики?

По Варианту 3 работает сайт Газпрома. И есть сомнения в данном решении, т.к. на сайте используется 3 языка.
*

Webb

  • Захожу иногда
  • 304
  • 19 / 2
  • rusinmd
чем короче адрес тем лучше для ПС.
Про Газпром - он хочет продвигать свой сайт в той зоне на которой и язык иностранный, думается что зарубежные Пс индексируют лучше сайты в .сом раз он на английском, (и то в панеле вебмастера надо выставлять приоритет для страны кажется), чем если сайт .ru/en
Если твой бизнес в России то делай директорию /en.
Это моё мнение.
*

den1762

  • Захожу иногда
  • 105
  • 3 / 0
Если твой бизнес в России то делай директорию /en.

В том-то и дело, что поставка изделий осуществляется и в Россию и за рубеж, т.е. важны все языковые части сайта.

P.S. Бизнес не мой, а государственный.
*

den1762

  • Захожу иногда
  • 105
  • 3 / 0
Правильно понимаю, что Microsoft работает по Варианту 1?
*

Webb

  • Захожу иногда
  • 304
  • 19 / 2
  • rusinmd
По-видимому, раз www.microsoft.ru не существует, а существует https://www.microsoft.com/ru/ru/default.aspx, да еще с кучей слэшей.
Двигать один домен куда проще, да и ссылочное соответственно идет на один домен плюс разнообразие ссылок как русскояз, так и англо, что тоже не плохо, в глазах ПС.


*

Webb

  • Захожу иногда
  • 304
  • 19 / 2
  • rusinmd
Если есть представительство зарубежом то возможно солидней и .сом иметь.
Ну а если представительство конкретно в какой либо стране то в её национальном домене!
*

den1762

  • Захожу иногда
  • 105
  • 3 / 0
С Вариантом 3 понятно.

Тогда остается только Варианты 1 и 2.

В итоге, на чем посоветуете остановиться? На сайте 3 языка (русский, английский и испанский).
Или для поисковиков нет разницы?
*

Webb

  • Захожу иногда
  • 304
  • 19 / 2
  • rusinmd
вариант 2
а на базе него как основного, делаете другие языковые версии - анг, нем, порт, исп, и т.д. это естественно в глазах ПС
но занимаясь внешней оптимизацией целевыми делать и эти страницы (/en, /es), то есть не забывать двигать и эти страницы, чтобы траффик шёл и на них с зарубежных ПС.
подобрали семантическое ядро для рус версии , не забудьте и о других версиях сайта!

« Последнее редактирование: 16.07.2010, 23:31:13 от Webb »
*

den1762

  • Захожу иногда
  • 105
  • 3 / 0
Странно.
При переключении на английскую версию (www.site.ru/en/...), а потом возврате на русскую часть (www.site.ru/...), сайт забывает о русской части и все остается на английском. При этом, переключение c английского на испанский (www.site.ru/es/...) работает.
В чем может быть дело?

Многоязычность реализована JoomFish.
SEO реализована стандартной функцией Joomla.
*

Webb

  • Захожу иногда
  • 304
  • 19 / 2
  • rusinmd
какие то технические моменты джумфиша с Joomla. найдите темы на форуме про джумфишь, может такая тема и подымалась.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор Gosha5767

Ответов: 0
Просмотров: 4740
Последний ответ 08.07.2025, 17:19:50
от Gosha5767
Расширение от индексации поисковиками внешних ссылок

Автор THE KILLERS

Ответов: 6
Просмотров: 1478
Последний ответ 11.03.2022, 16:02:10
от NewUsers
Закрыть страницу со знаком? от индексации

Автор Андрей Нестеров

Ответов: 2
Просмотров: 1306
Последний ответ 28.02.2022, 22:38:44
от Андрей Нестеров
Как вывести в сниппете название статьи, а потом название сайта?

Автор gorbi_U

Ответов: 0
Просмотров: 1092
Последний ответ 18.01.2022, 18:29:22
от gorbi_U
Не дело это - закрывать от индексации страницы с пагинацией

Автор ChaosHead

Ответов: 48
Просмотров: 11443
Последний ответ 04.11.2021, 06:44:26
от Slava77