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

bcrich87

  • Новичок
  • 2
  • 0 / 0
Копипаст
« : 13.05.2011, 08:07:04 »
Народ! Помогите. Имеется сайт с уникальным контентом. Другой сайт полностью скопировал его. Причем главная страница сайта копипастера не существует, но внутренние работают т.е. например. www. название сайта копипастера.ru/название моего домена. Если меняешь контент главной страницы, то сайт копипастер сразу же его копирует. Есть подозрение что сайт автоматически копирует мой контент, но как запретить копирование в таком случае я не знаю. Писал хостеру, тишина писал владельцу сайта, аналогично. Ставил на сайт защиту от копирования правой кнопкой и ctrl-c, не помогает. Яндекс забанил главную ,возможно не из-за этого, но я уже весь сайт перерыл, все подогнал под требования яндекса, видимо остается это. Подскажите у кого какие есть мысли.
*

Mihanja80

  • Завсегдатай
  • 1918
  • 168 / 4
  • Всю жизнь учусь...
Re: Копипаст
« Ответ #1 : 13.05.2011, 08:43:02 »
напишите в Яндекс...
Я с мобильного, в основном...
*

maximt

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Re: Копипаст
« Ответ #2 : 13.05.2011, 08:52:38 »
скорей всего это зеркало, а не копипаст
*

bcrich87

  • Новичок
  • 2
  • 0 / 0
Re: Копипаст
« Ответ #3 : 13.05.2011, 09:21:20 »
В Яндекс писал. В общих чертах говорят, что это мои проблемы. Да скорее всего это зеркало, но как запретить копирование контента?
*

AL_ALEX

  • Глобальный модератор
  • 855
  • 112 / 1
Re: Копипаст
« Ответ #4 : 13.05.2011, 09:28:55 »
СОВЕТЫ:

1. Пытайтесь связаться с владельцем того сайта, который украл ваш сайт. В моем случае сайт-копия был размещен на поддомене – домене третьего уровня, поэтому я смог узнать e-mail нарушителя, зайдя на его основной сайт. Объясните ситуацию, дайте ему понять, что вы узнали о факте воровства и, что вы не собираетесь оставлять это дело просто так. Пусть почувствует, что вы настроены решительно и отступать не намерены. Это должно повлиять на человека, особенно, если он не планировал, что вы так быстро узнаете о воровстве сайта или, вообще, хотел провернуть все втихую.

2. Пишите в хостинговую компанию, на сервере которых находиться сайт-копия. Хостер не обязан разбираться, кто прав, кто виноват, но, если компания достаточно крупная и заботится о своей репутации, то вряд ли они не пойдут вам навстречу. Узнать адрес хостинговой компании достаточно просто, необходимо проверить DNS сервера.

проверить DNS сервера

Мне на мои письма никто так и не ответил: ни хостер (писал ему 2 раза), ни владелец сайта, опустившийся до воровства.

3. Можно написать в техподдержку поисковой системы Яндекс. Но, как свидетельствуют многие уже писавшие письма Платону Щукину – Яндекс воздерживался от разбирательств и, уж тем более, от каких либо карательных мер, заявляя, что они лишь поисковая система, которая не будет вмешиваться в это разбирательство.

4. Если ни первое, ни второе, ни третье не помогло – пишите на юридические форумы и ищите помощи там, доводя дело до судебного разбирательства.

5. Если вообще ничего не помогло, а обращаться в суд вы не хотите, потому что это время, деньги и судебные заморочки, то можете прописать сайт-копию, как зеркало своего сайта.

В моей ситуации: после двух писем хостерам и одного письма владельцам доменного имени, под которым был выпущен мой сайт, сайт-копия был удален.

Главное: бороться и не молчать, пока не стало поздно и уже вас не обвинили в воровстве “чужого-своего” сайта. Теоретически, поисковые системы, используя свои фильтры и алгоритмы, должны отсекать дублированный контент и не включать подобные страницы в поисковую выдачу. К тому же, возраст домена и характеристики сайта должны сыграть вам наруку, как законному владельцу сайта и изложенной в нем информации. Поэтому, при раскрутке молодого сайта с уникальным контентом, не стоит сразу размещать ссылки на свой сайт где попало, пусть ваш сайт сперва проиндексируют поисковые системы, а то есть опасение, что контент, перехваченный и скопированный с ваших страниц, будет использован другими проектами, чей возраст и вес в поисковиках сделают ваш молодой сайт дубликатом другого.

Источник
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как спрятать копипаст от всевидящего ока?

Автор Algemir

Ответов: 6
Просмотров: 1888
Последний ответ 30.03.2012, 00:13:58
от skai