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

GRIG

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Народ! прошу помощи в совершенно чайниковском, но очень важном вопросе.
Каким редактором лучше редактировать создаваемые материалы в J1.5?
Тонкость вопроса заключается вот в чем. При установке Joomla на сайт я выбрал в качестве основного редактора JCE. До поры до времени все было хорошо. Но вдруг случились 2 вирусных атаки на мой сайт. Я после такого заинтересовался вопросами безопасности и где-то в соседнем форуме обнаружил мнение: мол, JCE - это не просто дыра в безопасности, а проходной двор, через который можно с сайтом сделать все, что угодно. Поскольку чистка последствий вирусных атак стоила мне изрядного времени и нервов, я после такого JCE просто снес.
Из стандартного комплекта остался только TinyMCE. Но он не умеет нормально вставлять в создаваемые тексты ссылки на другие страницы сайта и загруженные на сайт картинки. Точнее, умеет, но это настолько неудобно, что я наизнанку вывернулся от матюков, пока это сделал.
Теперь вот не знаю, что лучше. То ли возвращать JCE с его дырами в безопасности, то ли материться на TinyMCE каждый раз, когда новый материал на сайт идет, то ли искать что-то еще совсем другое.
Помогите разобраться.
Заранее спасибо.
« Последнее редактирование: 11.06.2013, 21:18:12 от GRIG »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Альтернативы я не видел, либо тот либо другой.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Альтернатива всегда есть. Например, обновиться до последней стабильной версии Joomla и JCE соответственно.
*

Mihanja80

  • Завсегдатай
  • 1918
  • 168 / 4
  • Всю жизнь учусь...
Альтернатива всегда есть. Например, обновиться до последней стабильной версии Joomla и JCE соответственно.
Поддерживаю!
Я с мобильного, в основном...
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Альтернатива всегда есть. Например, обновиться до последней стабильной версии Joomla и JCE соответственно.
Речь про 1.5, врядли они до сих пор поддерживают. А альтернативы нет.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Речь про 1.5, врядли они до сих пор поддерживают. А альтернативы нет.
Сомнительно, что вообще кто то еще поддерживает 1.5
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Речь про 1.5, врядли они до сих пор поддерживают. А альтернативы нет.

Поддерживают

http://www.joomlacontenteditor.net/downloads/editor/joomla15x

ТС:
- во-первых, весь холивар по поводу уязвимостей в JCE касался довольно древних версий, разработчики их не отрицали и закрывали по мере обнаружения
- во-вторых, если у вас есть помимо админа люди, которые размещают материалы - многие вопросы решаются настройкой профилей в JCE
- в-третьих - если таковых людей нет - не устанавливайте JCE редактором по умолчанию для всего сайта, установите его редактором по умолчанию в профиле админа, в остальных расширениях, в которых может вызываться окно редактора, будет вызываться TinyMCE
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Был же вроде некий FCK, кажется

Ну что касается его и уязвимостей - в логах уже не первых месяц наблюдаю простукивание на предмет его наличия и попытку вызвать какой-то upload
Наверное неспроста.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
- во-вторых, если у вас есть помимо админа люди, которые размещают материалы - многие вопросы решаются настройкой профилей в JCE
- в-третьих - если таковых людей нет - не устанавливайте JCE редактором по умолчанию для всего сайта, установите его редактором по умолчанию в профиле админа, в остальных расширениях, в которых может вызываться окно редактора, будет вызываться TinyMCE
Вообще то для эксплоита в нем не требовалась никакая учетка, запрос формировался напрямую к загрузчику файлов.
Я лично просто удалял этот файлик оптом, редактор лишь терял часть функционала.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Ну что касается его и уязвимостей - в логах уже не первых месяц наблюдаю простукивание на предмет его наличия и попытку вызвать какой-то upload
Наверное неспроста.
да есть у него file upload уязвимость 230511 - но никакой информации о ее актуальности
*

GRIG

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Поддерживают

http://www.joomlacontenteditor.net/downloads/editor/joomla15x
Попробовал его установить - получил ошибку при исполнении установочного скрипта. Причем ошибка совершенно не по делу - что-то на тему "вызов приватного метода в классе".
Копание в возможных причинах этой ошибки выявило более серьезную проблему: этот приватный метод вызывается тогда, когда установка не может быть произведена из-за несоответствия системы минимальным требованиям.
Что можно сделать дальше?

Цитировать

ТС:
- во-первых, весь холивар по поводу уязвимостей в JCE касался довольно древних версий, разработчики их не отрицали и закрывали по мере обнаружения
Ну допустим.
Цитировать
- во-вторых, если у вас есть помимо админа люди, которые размещают материалы - многие вопросы решаются настройкой профилей в JCE
- в-третьих - если таковых людей нет - не устанавливайте JCE редактором по умолчанию для всего сайта, установите его редактором по умолчанию в профиле админа, в остальных расширениях, в которых может вызываться окно редактора, будет вызываться TinyMCE
Таковых людей нет - правом размещения материалов на сайте обладает только админский аккаунт.

*

GRIG

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Альтернатива всегда есть. Например, обновиться до последней стабильной версии Joomla и JCE соответственно.
Обновиться с 1.5 до следующих версий - насколько я понял, дело хлопотное. Разумеется, со временем это надо будет сделать. Но сейчас надо заткнуть проблему быстро.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Ну так обновите сначала JCE, возможно проблема уже решена.
*

GRIG

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Ну так обновите сначала JCE, возможно проблема уже решена.
Проблема в том, что версия JCE, входящая в комплект J1.5, дырявая, а самая свежая версия JCE не встает из-за несоответствия системы минимальным требованиям.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
...таковых людей нет - правом размещения материалов на сайте обладает только админский аккаунт.

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

Например, какие-нибудь формы контактов, отзывов, конструкторы форм и т.п.
А они зачастую вообще не требуют регистрации для того чтобы посетитель оставил сообщения.

Соответственно если для всего сайта по умолчанию будет установлен более "продвинутый" редактор чем tinymce  - он будет вызываться и в этих компонентах.
*

GRIG

  • Осваиваюсь на форуме
  • 38
  • 2 / 0
Насчет отзывов - спасибо. Мысль здравая, ибо на сайте присутствуют как минимум JComments и PhocaGuestbook.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Чем лучше всего делать резервные копии сайта?

Автор 7Azimuth

Ответов: 115
Просмотров: 57421
Последний ответ 29.11.2023, 14:41:12
от sivers
Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 3661
Последний ответ 12.11.2023, 23:37:03
от all_zer
Перестал сохранять материалы и модули

Автор Igoritaly

Ответов: 2
Просмотров: 1172
Последний ответ 11.08.2017, 13:37:48
от Igoritaly
Не отображаются материалы и ссылки на сайте (joomla 1.5)

Автор МарияЛ

Ответов: 1
Просмотров: 1772
Последний ответ 18.03.2017, 19:22:31
от rebus
Как вызвать модуль с текстом, если не работает админка?

Автор kirill-juk

Ответов: 2
Просмотров: 2268
Последний ответ 19.11.2016, 00:43:18
от SeBun