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

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Не могу понять, есть 4 способа, html-файл, мета-тэг, txt-файл, через dns, но не могу понять как это сделать на Joomla 1.5.
Подскажите!, заранее спасибо!
*

dmtn

  • Захожу иногда
  • 381
  • 25 / 2
они же там дают файлик HTML - вот и закинуть его туда же, куда все содержимое сайта, если все правильно, он откроется по адресу который там приведен
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
они же там дают файлик HTML - вот и закинуть его туда же, куда все содержимое сайта, если все правильно, он откроется по адресу который там приведен
Можно поподробней?
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Например, txt-файл. Создаёте пустой файл с именем, которое предлагает Яндекс, типа yandex_6211eea658vufg82a3.txt.
Кладёте этот файл в корень сайта - в Главную папку с такими папками как administrator, cache, components, modules, templates и др. И в Яндекс.Вебмастере жмёте "Подтвердить права" или как там эта кнопка называется.
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Например, txt-файл. Создаёте пустой файл с именем, которое предлагает Яндекс, типа yandex_6211eea658vufg82a3.txt.
Кладёте этот файл в корень сайта - в Главную папку с такими папками как administrator, cache, components, modules, templates и др. И в Яндекс.Вебмастере жмёте "Подтвердить права" или как там эта кнопка называется.
Спасибо за ответы, а где этот корень сайта??
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Это Главная папка со всеми остальными папками. На хостинге (там, где лежат файлы Вашего сайта в интернете) найдите эту корневую папку и положите туда txt-файл.
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Это Главная папка со всеми остальными папками. На хостинге (там, где лежат файлы Вашего сайта в интернете) найдите эту корневую папку и положите туда txt-файл.
А как зайти на хостинг?
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
У Вас же сайт в интернете? Значит, где-то в интернете лежат файлы этого сайта (картинки, тексты, файлы разные). У Вас должна быть следующая информация:
- адрес сайта Вашего хостера;
- логин и пароль от личного кабинета;

Нужно зайти на сайт хостера, ввести логин/пароль, найти раздел типа "Управление файлами", "Файловый менеджер" и т.п. И там найти нужную папку.
Ещё у Вас может быть доступ к файлам Вашего сайта по FTP, но об этом, наверное, не стоит пока...
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
У Вас же сайт в интернете? Значит, где-то в интернете лежат файлы этого сайта (картинки, тексты, файлы разные). У Вас должна быть следующая информация:
- адрес сайта Вашего хостера;
- логин и пароль от личного кабинета;

Нужно зайти на сайт хостера, ввести логин/пароль, найти раздел типа "Управление файлами", "Файловый менеджер" и т.п. И там найти нужную папку.
Ещё у Вас может быть доступ к файлам Вашего сайта по FTP, но об этом, наверное, не стоит пока...
Я всегда захожу в админ центр ввожу имя и пароль и управляю сайтом, размещаю новости и т.д.Есть медиа файлы, но нужной папки нету.   
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Вы заходите в административную панель своего сайта и там в медиаменеджере можете видеть только некоторые папки. Вам же нужно зайти на хостинг.
Вы же платите за доменное имя (адрес Вашего сайта) и хостинг (кусочек места на чьём-то очень большом жёстком диске, где хранятся Ваши файлы)?
Если хостинг зарегистрирован на Вас, у Вас в почте должно быть письмо от хостера с логином и паролем.
Напишите адрес Вашего сайта, если можно.
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Вы заходите в административную панель своего сайта и там в медиаменеджере можете видеть только некоторые папки. Вам же нужно зайти на хостинг.
Вы же платите за доменное имя (адрес Вашего сайта) и хостинг (кусочек места на чьём-то очень большом жёстком диске, где хранятся Ваши файлы)?
Если хостинг зарегистрирован на Вас, у Вас в почте должно быть письмо от хостера с логином и паролем.
Напишите адрес Вашего сайта, если можно.
Я понял вот http://mailfry.beget.ru/ - сайт хостинга.Я просто туда не когда не заходил. 
*

Maxum

  • Давно я тут
  • 689
  • 32 / 1
Заходите туда в "Панель управления" и ищите папку с сайтом.
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Все подтвердил, спасибо! А как улучшить запросы по Яндексу?А то в Google индекс 525, а в яндексе 7 :(
*

dmtn

  • Захожу иногда
  • 381
  • 25 / 2
ну это уже совсем другая песня, вот еще подтверди свои права в liveinternet и там увидишь кучу рекламы как это сделать :), да и здесь если вчитаться в подписи тоже есть умельцы не слабые
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
ну это уже совсем другая песня, вот еще подтверди свои права в liveinternet и там увидишь кучу рекламы как это сделать :), да и здесь если вчитаться в подписи тоже есть умельцы не слабые
Не нашел таких людей...
*

dmtn

  • Захожу иногда
  • 381
  • 25 / 2
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Все подтвердил, спасибо! А как улучшить запросы по Яндексу?А то в Google индекс 525, а в яндексе 7 :(
АГС
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
*

jurist90

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решение] Управление заголовками (title) материалов и категорий J2.5!

Автор Lovenokia

Ответов: 43
Просмотров: 34344
Последний ответ 17.05.2017, 17:07:34
от Kasatka2
статьи упали на 10 страниц в яндексе

Автор oskokos

Ответов: 6
Просмотров: 1248
Последний ответ 02.02.2017, 23:04:27
от vitzer
Проблема с сайтом одностраничником

Автор priormen

Ответов: 8
Просмотров: 1142
Последний ответ 21.09.2016, 09:59:12
от Missile
Что обозначает N / a в Яндексе?

Автор 1-F7

Ответов: 2
Просмотров: 956
Последний ответ 03.08.2016, 20:33:19
от 1-F7
Выложить сайт на индексацию до завершения работ над сайтом?

Автор bronepoezd27

Ответов: 15
Просмотров: 1549
Последний ответ 11.05.2015, 22:47:45
от ChaosHead