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

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
SEO – консультант
« : 08.06.2017, 10:13:10 »
Доброе время суток, Форум!
Прошу «не пинать», может обращаюсь не по адресу, но частенько вижу в подписях Форумчан – SEO и все что с ним связано.
Есть желание получить некий опыт в продвижении сайтов. Знаком с азами (оптимизация, сколько заголовков должно быть на странице и как составлять семантику, как составлять мета-…, где и как отыскать ключевые слова и как они должны отображаться на сайте), но этого совсем не достаточно для продвижения.

Если такое возможно! проконсультировать, сопровождать в процессе продвижения сайта (на реальном «пациенте»). От консультанта требуется – дать задание, растолковать как и что необходимо сделать (если с этим не знаком) и по результату работы обговорить «проделанное».

Понимаю, что консультация требует Вашего времени, которое должно быть оплачено. Скажу, что не готов оплачивать «огромные» счета и предлагаю к примеру за каждый этап работы – 5 уе. Есть задание, выполнил под Вашим руководством, оплатил!
Если сумма смешная – можно оговорить, но повторюсь, что не готов платить баснословные суммы за сопровождение. Это скорее всего, консультация за «шоколадку». 

Если обращаюсь не по адресу и данный ТОПик выглядит смешным – не стоит писать, что сумма смешная и это не серьезное предложение. Может кому-то эта чисто символическая сумма не будет лишней.
Заранее благодарен за Ваше понимание! 
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: SEO – консультант
« Ответ #1 : 08.06.2017, 13:38:53 »
Если консультации в стиле "пнул в нужном направлении", а дальше сам смог, то в принципе - можно, телеграм в подписи.
Если надо будет разжёвывать всё по полочкам, то не (точнее с добавлением нолика в ценник).
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: SEO – консультант
« Ответ #2 : 08.06.2017, 15:31:36 »
Если консультации в стиле "пнул в нужном направлении", а дальше сам смог, то в принципе - можно, телеграм в подписи.
Если надо будет разжёвывать всё по полочкам, то не (точнее с добавлением нолика в ценник).
Для начала можно и "пнул в нужном направлении" - главное указать направление, а там уже по обстоятельствам
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: SEO – консультант
« Ответ #3 : 08.06.2017, 15:36:33 »
А можно вебинар в складчину?  ^-^ Я серьёзно.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: SEO – консультант
« Ответ #4 : 08.06.2017, 15:44:37 »
А можно вебинар в складчину?  ^-^ Я серьёзно.
я не против! Даже будет интересно
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: SEO – консультант
« Ответ #5 : 08.06.2017, 15:46:53 »
Только как на это батько Воланд отреагирует. "Подождём твою маму ... Подождём твою ..."

У меня тоже куча вопросов, таких, как правильность h1-h3, распределение мета и т.п.
Как же всё таки правильно дубли убирать и т.п.
SSL-отдельная тема, тоже интересует.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: SEO – консультант
« Ответ #6 : 08.06.2017, 16:01:22 »
Для начала можно и "пнул в нужном направлении" - главное указать направление, а там уже по обстоятельствам
В телегу.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: SEO – консультант
« Ответ #7 : 08.06.2017, 16:02:40 »
я не против! Даже будет интересно
Только как на это батько Воланд отреагирует. "Подождём твою маму ... Подождём твою ..."

У меня тоже куча вопросов, таких, как правильность h1-h3, распределение мета и т.п.
Как же всё таки правильно дубли убирать и т.п.
SSL-отдельная тема, тоже интересует.
Можно и вебинар. Только смысл?
Общие вопросы, думаю и так много раз перетирались.
Конкретика по отдельным сайтам требует анализа конкретного сайта.
Нет никаких магических кнопок, увы
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: SEO – консультант
« Ответ #8 : 08.06.2017, 16:51:47 »
Можно и вебинар. Только смысл?
А кто то складчину предлагал? Ну так скинулись на вебинар, человек провел... Чем больше народу, тем меньше с каждого...
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: SEO – консультант
« Ответ #9 : 08.06.2017, 16:58:43 »
Ну так скинулись на вебинар, человек провел... Чем больше народу, тем меньше с каждого...

И я о том же, согласен еврик выкинуть, дядьку Воланда послушать.  ;)
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: SEO – консультант
« Ответ #10 : 08.06.2017, 17:21:10 »
а я предлагаю дядьке воланду на #jd с этой темой выступить с докладом, там сразу такая тьма народу будет слушать!
*

SemKimov2

  • Осваиваюсь на форуме
  • 28
  • 3 / 2
Re: SEO – консультант
« Ответ #11 : 13.06.2017, 12:01:54 »
Присоединяюсь! Интересная идея :)
*

Vaska

  • Осваиваюсь на форуме
  • 29
  • 0 / 2
Re: SEO – консультант
« Ответ #12 : 17.06.2017, 22:59:57 »
Как же всё таки правильно дубли убирать и т.п.

Подскажу мой способ решения дублей у mambo/joomla:

- сделал систему шаблонов, которая позволяет назначить отдельный шаблон на ссылку меню или на конкретную ссылку страницы. Во всех шаблонах, кроме дефолтного, прописал метатеги:
<meta name="robots" content="all" />
<meta name="distribution" content="Global" />

- создал дефолтный шаблон с метатегами:
<meta name="robots" content="none" />
<meta name="distribution" content="IU" />
Дефолтный шаблон назначен на весь сайт и соответственно все страницы, которые не вошли под управление отдельных шаблонов, и таким образом все ненужные страницы запрещено индексировать и выводить в выдачу поисковых систем.
« Последнее редактирование: 17.06.2017, 23:04:14 от Vaska »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться