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

Koriolan

  • Захожу иногда
  • 118
  • 0 / 0
Доброго времени суток!

Помогите, кто сталкивался с подобной проблемой. Перечитал весь форум, но вразумительного решения не нашел.
При сохранении материала, созданного в k2 стало появляться сообщение
Цитировать
500 - Обнаружена ошибка.
и материал не сохраняется.

Появляться ошибка стала после попытки загрузить с помощью встроенного в k2 медиа-менеджера изображения. Сам файл ничем особенным не отличается от аналогичных, залитых на сервер днем ранее.

Помогите, пожалуйста - сайт рабочий и раньше с ним подобного не случалось.
*

Koriolan

  • Захожу иногда
  • 118
  • 0 / 0
Неужели ни у кого подобных проблем не возникало?
*

Askii

  • Новичок
  • 8
  • 0 / 0
Поддерживаю вопрос, у самого возникла такая же ошибка.

Система:
Joomla! 2.5.8 Stable
Joomla Platform 11.4.0 Stable
Apache/2.2.15 (Red Hat) mod_rpaf/0.6 PHP/5.3.21
5.5.25-log (БД)
интерфейс: apache2handler
Mbstring включен, Register Globals выключен, Safe Mode выкл., Open basedir - нет, Display Errors выкл., Magic Quotes выкл., Iconv доступен
это основные, если будет нужно что-то уточнить: спрашивайте.

Почему-то при выставленных правах на все файлы лога и темпа по указанным адресам ниже 0777 (777) так же выдает, может быть, это важно, следующее:
/home/srv3052/krsksz.ru/logs (Каталог файлов лога)   Недоступно
/home/srv3052/krsksz.ru/tmp (Каталог для временных файлов)   Недоступно

версия K2: K2 v2.6.2
При обновлении недавно выдал ошибку, будто не видел XML. Вот такая загогулина. Мои идеи закончились, но я новичек в Joomla, и надеюсь, что здесь кто подскажет!

В логе сервера целый ворох загадочных ошибок:


anysite.ru [Wed Jan 30 17:36:13 201] [error] [client XX.XXX.XX.XX] PHP Notice:  Trying to get property of non-object in /home/anyhost/anysite.ru/libraries/joomla/updater/adapters/extension.php on line 193, referer: http://anysite.ru/administrator/index.php
anysite.ru [Wed Jan 30 17:38:08 201] [error] [client 66.249.76.193] PHP Notice:  Undefined index: counter in /home/anyhost/anysite.ru/templates/obmicon-orange/index.php on line 6
anysite.ru [Wed Jan 30 17:52:37 201] [error] [client XX.XXX.XX.XX] PHP Warning:  fopen(/logs/rokcommon.php): failed to open stream: No such file or directory in /home/anyhost/anysite.ru/libraries/joomla/log/loggers/formattedtext.php on line 248, referer: http://anysite.ru/administrator/index.php?option=com_k2&view=item&cid=19
anysite.ru [Wed Jan 30 17:52:37 201] [error] [client XX.XXX.XX.XX] PHP Warning:  fputs() expects parameter 1 to be resource, boolean given in /home/anyhost/anysite.ru/libraries/joomla/log/loggers/formattedtext.php on line 254, referer: http://anysite.ru/administrator/index.php?option=com_k2&view=item&cid=19
anysite.ru [Wed Jan 30 17:52:38 201] [error] [client XX.XXX.XX.XX] File does not exist: /home/anyhost/anysite.ru/favicon.ico
anysite.ru [Wed Jan 30 17:52:50 201] [error] [client XX.XXX.XX.XX] PHP Warning:  fopen(/logs/rokcommon.php): failed to open stream: No such file or directory in /home/anyhost/anysite.ru/libraries/joomla/log/loggers/formattedtext.php on line 248, referer: http://anysite.ru/administrator/index.php?option=com_k2&view=item&cid=19
anysite.ru [Wed Jan 30 17:52:50 201] [error] [client XX.XXX.XX.XX] PHP Warning:  fputs() expects parameter 1 to be resource, boolean given in /home/anyhost/anysite.ru/libraries/joomla/log/loggers/formattedtext.php on line 254, referer: http://anysite.ru/administrator/index.php?option=com_k2&view=item&cid=19
*

Askii

  • Новичок
  • 8
  • 0 / 0
Да, config без BOM сохранял, состав htacces подозрений не вызывает.

Буду очень благодарен ответам! Я уже все перерыл, и в русском, и в нерусском, но решения не нашел! В FAQ у вас обсуждена проблема сохранения в K2, но в фронтовой части, а это из админки проблема.

Введенные материалы не сохраняются.
*

Askii

  • Новичок
  • 8
  • 0 / 0
Добавлю к проблеме лично в моем случае:

http://rockettheme.com/forum/index.php?f=612&t=162214&rb_v=viewtopic - здесь
и
http://www.rockettheme.com/forum/index.php?f=612&t=162295&rb_v=viewtopic - здесь
обсуждается именно эта проблема. У меня был установлен RokNavMenu и, видимо, с ним в комплекте шел еще-какой-то их модуль обработки контента. Этот модуль явно вошел в конфликт с k2. Судя по всему, помогает переустановка модуля rok.

ПОПРАВКА.
Проблемный модуль: RokGallery .
Подтверждено. С удалением модуля (и всех его частей) все исправилось.
« Последнее редактирование: 31.01.2013, 21:02:41 от Askii »
*

Koriolan

  • Захожу иногда
  • 118
  • 0 / 0
Боюсь утверждать что-либо наверняка, но в моем случае, проблема, как оказалось, была в превышении дисковой квоты.

Я обратил внимание, что проблема возникает после загрузки на сервер очередного изображения - оно либо отказывалось загружаться, либо загружалось не полностью (при этом проверял разными способами загрузки: и встроенным в k2 и стандартным медиа-менеджерами и при загрузке через ftp). Заглянул в Си-панель, прочел сообщение о превышении дисковой квоты. Прочистил папку tmp и убрал еще кое-что лишнее. Вошел в квоту - работа по добавлению материалов и загрузке изображений нормализовалась. Как только она опять была превышена - проблемы вернулись.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

K2 ошибка при переносе на SQL

Автор Vekach

Ответов: 1
Просмотров: 6235
Последний ответ 21.08.2025, 16:49:01
от wishlight
Автоматическая дата снятия с публикации материала

Автор kozhenevsky

Ответов: 10
Просмотров: 4313
Последний ответ 17.11.2023, 08:08:49
от Vastriet
K2 + Falang при переходе по переведенному тегу ошибка 404

Автор Slava77

Ответов: 2
Просмотров: 3083
Последний ответ 09.02.2022, 15:53:00
от Slava77
В Joomla! 3.9.1 в к2 не меняется порядок расположения материала

Автор sergspb

Ответов: 0
Просмотров: 826
Последний ответ 12.06.2021, 15:20:52
от sergspb
Ошибка ПРИ создании материала В К2 - РЕШЕНО

Автор korchaga

Ответов: 1
Просмотров: 927
Последний ответ 28.12.2020, 03:21:46
от korchaga