Новости 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 Ответов
  • 13939 Просмотров
*

slash281990

  • Осваиваюсь на форуме
  • 39
  • 0 / 1
SAPE и Joomla
« : 22.07.2007, 22:51:59 »
Проблемка - я в модуль вставил код SAPE - он мне выдает link request()
что-то вроде этого.
с SAPE написали что типа код не обрабатывается - что делать? :'(
*

slash281990

  • Осваиваюсь на форуме
  • 39
  • 0 / 1
Re: SAPE и Joomla
« Ответ #1 : 22.07.2007, 22:54:57 »
то есть - не link request а return_links()
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: SAPE и Joomla
« Ответ #2 : 23.07.2007, 13:23:51 »
Видишь ли, в модули Joomla бессмысленно вставлять PHP-код, бо он там не выполняется. Нужно или вставлять этот код прямо в текст шаблона, или же воспользоваться модулем, для вывода ссылок Sape (найти его при желании не проблема, называется mod_sape)

Re: SAPE и Joomla
« Ответ #3 : 23.07.2007, 21:15:34 »
Особенно прикольно искать тут на форуме - mod_sape и видишь ссылку на этот топик
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: SAPE и Joomla
« Ответ #4 : 24.07.2007, 15:16:06 »
Особенно прикольно искать тут на форуме - mod_sape и видишь ссылку на этот топик
да, есть такое... ну чтобы упросить жизнь пользователям, давайте приаттачу этот модуль прямо в этом топике.

[вложение удалено Администратором]

Re: SAPE и Joomla
« Ответ #5 : 13.08.2007, 05:29:12 »
да, есть такое... ну чтобы упросить жизнь пользователям, давайте приаттачу этот модуль прямо в этом топике.

Спасибо...
*

Ctrelok

  • Осваиваюсь на форуме
  • 26
  • 0 / 2
Re: SAPE и Joomla
« Ответ #6 : 29.08.2007, 23:52:26 »
Господа, кто работал с mod_sape, подскажите плз новичку. а то ни фига не понятно, как настраивать этот модуль?
Уникальный номер  - это, как я понял, название папки с жутким названием?
Sape Site ID  - это то, что они дают при добавлении сайта?
Способ подключения  По умолчанию file_get_contents curl socket 
Количество ссылок   10
URL хоста без http://coloncovo.ru 
а остальные значения - по умолчанию, как они и были в этом модуле?

Использовать REDIRECT_URL, SCRIPT_URL  Отключен REDIRECT_URL SCRIPT_URL 
Кодировка   По умолчанию CP1251 UTF-8 

Скрывать проверочный код   Отключен Включен 
Передача хоста  Отключен Ручная установка 
Самостоятельный вывод модуля   Отключен Включен 
Режим отладки  Отключен Включен - минимальный Включен - максимальный 
Суффикс класса модуля
*

bigbrain

  • Захожу иногда
  • 119
  • 3 / 2
Re: SAPE и Joomla
« Ответ #7 : 06.09.2007, 01:45:45 »
Аналогичный вопрос. Когда я публикую модуль или вставляю код в шаблон, то сайт загружается до того места, где должен начинаться модуль. Что делать?
*

bigbrain

  • Захожу иногда
  • 119
  • 3 / 2
Re: SAPE и Joomla
« Ответ #8 : 09.10.2007, 23:31:39 »
Sape Site ID оставь пока пустым, потом заполнишь. Главное, чтобы присутствовала папка с жутким названием и на нее права 777.
Если все правильно, то сайт добавляется без проблем
*

art

  • Осваиваюсь на форуме
  • 14
  • 1 / 2
Re: SAPE и Joomla
« Ответ #9 : 11.11.2007, 15:16:27 »
Напишите пожалусто свои настройки у которого всё работатет...а то что-то у меня никак
*

ZHart

  • Захожу иногда
  • 324
  • 53 / 2
Re: SAPE и Joomla
« Ответ #10 : 12.11.2007, 12:41:17 »
А чем mod_php не угодил?
Зачем такие сложности?
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: SAPE и Joomla
« Ответ #11 : 17.10.2008, 11:16:22 »
Я решил проблему следующим образом
1) Папка в корне от сапы. Права 777 или 755 (зависит от настроек сервера)
2) В файл index.php в корне сайта (именно в корне сайта) прописываем
require_once('XXXXXXXXXXXXXXXXXXXXXXX/sape.php');
$sape = new SAPE_client();
3) В шаблоне прописываем <? echo $sape->return_links(); ?>  там где будут ссылки.

И все работает
*

rudic

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Re: SAPE и Joomla
« Ответ #12 : 11.12.2008, 20:34:16 »
Подскажите как sape  в  joomla 1.5.7 запихать   Есть какойнибудь модуль под 1.5.7?

Re: SAPE и Joomla
« Ответ #13 : 12.12.2008, 11:50:48 »
модуль для sape.
подробное описание на моем сайте (в профиле)
он работает как с упомянутым компонентом, так и без.

и это... ты топиком ошибся, вопросы по 1.5.Х  и сапе в другой ветке.
« Последнее редактирование: 12.12.2008, 12:00:36 от borej »
*

bormanstaryi

  • Новичок
  • 3
  • 0 / 0
Re: SAPE и Joomla
« Ответ #14 : 18.06.2009, 10:43:41 »
Может кто подскажет, как боротся с такой проблемой. В сапе получаются 2 разных адреса:
index.php?option=com_content&task=view&id=241&Item id=47
index.php?option=com_content&task=view&id=241&Itemid=47
Из-за этого некоторые ссылки висят в эрроре. На форуме сапы сказали, что кривой код и посоветовали убрать такие строки:
<td valign="top" colspan="2">
<body>
<div align="center"><div align="left" class="docBody">
Как их убрать? В шаблоне сайта не нашел этих строк, а если просмотреть код страницы, то есть. Что делать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla! 1.6 не могу войти в админку

Автор stendapuss

Ответов: 3
Просмотров: 4900
Последний ответ 01.07.2017, 13:35:38
от stendapuss
Как переделать сайт, cозданный в Joomla Lavra Edition 2008 (1.0.15) на Joomla3x ?

Автор KrisKras

Ответов: 12
Просмотров: 5449
Последний ответ 21.02.2017, 15:15:17
от KrisKras
Восстановление управляемости сайта на Joomla 1.0.12 после обновления php до версии 5.5 и последовате

Автор galogen

Ответов: 6
Просмотров: 4773
Последний ответ 15.02.2017, 01:58:44
от Alex Revo
Joomla 1.0.15 и php 5.3.1

Автор lsk

Ответов: 36
Просмотров: 34759
Последний ответ 27.05.2016, 18:35:44
от Wertos
Кодировка Joomla lavra edition 2008

Автор evgen22

Ответов: 12
Просмотров: 6206
Последний ответ 22.08.2015, 14:26:24
от SeBun