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

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Есть ли способ перенести статьи обратно из К2 в Joomla?  :(
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Вот что мне ответили http://community.getk2.org/forum/topics/may-i-move-k2-materials-to на родном форуме. Муторно это, видать...
Fatal error - это не фатально!!! Я проверила.
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Не так уж и муторно, просто компоненты для этих операций платные.
Мне бы даже купить не жалко было бы, но, во-первых, там ПэйПэл, а во вторых импорт стоит в 20 раз дороже экспорта (2 евро против 40)
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Да, платить неудобно, я тоже как-то хотела купить - шаблон, а для этого нужно банковскую карточку заводить. Не подумали о России))) Насчет к2 я уже решила смириться и поискать в нем достоинства, и с выводом разделов разобраться, а то какие-то безликие таблички - некрасиво.
Fatal error - это не фатально!!! Я проверила.
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Вот что мне ответили http://community.getk2.org/forum/topics/may-i-move-k2-materials-to на родном форуме.

Ну насчёт

Цитировать
That is not possible.

- это он загнул конечно )))
Так же как и насчёт импорта-экспорта через CSV.

Даже не заморачиваясь с написанием мигратора не сильно большой объём можно через phpMyAdmin перекинуть.
Конечно в пределах стандартной структуры com_content, то есть потеряются чисто К2-атрибуты материалов вроде extra_fields
И надо думать над соответствием категорий и разделов (в К2 разделов нет)
« Последнее редактирование: 20.04.2011, 10:06:49 от SDKiller »
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Навскидку - что-то вроде этого.
В этом запросе нет id самих материалов , чтобы не было ошибок дублирования id при вставке. Если переносить в пустой jos_content - можно сохранить исходные id материалов, добавив их в запрос.

Также и с `sectionid` и `catid` - если есть возможность сопоставить `catid` из К2 разделам и категориям в jos_content - можно добавить их в запрос, если нет - переназначать вручную или прогнать дополнительные запросы уже после переноса самого контента.

Код
INSERT INTO `jos_content` (`title`,`alias`,`title_alias`,`introtext`,`fulltext`,`state`,`created`,`created_by`,`created_by_alias`,`modified`,`modified_by`,`checked_out`,`checked_out_time`,`publish_up`,`publish_down`,`ordering`,`hits`,`metakey`,`metadesc`,`metadata`)
SELECT `title`,`alias`,`alias`,`introtext`,`fulltext`,`published`,`created`,`created_by`,`created_by_alias`,`modified`,`modified_by`,`checked_out`,`checked_out_time`,`publish_up`,`publish_down`,`ordering`,`hits`,`metakey`,`metadesc`,`metadata` FROM `jos_k2_items`
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Пишем мигратор для незадачливых любителей к2)))
Если я так сделаю, у меня сохранятся материалы сначала и там, и там - будут и в к2 и в обычных статьях? Если что-то не выйдет, можно будет вернуться назад?
Fatal error - это не фатально!!! Я проверила.
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
K2 вообще очень удобный компонент, только вот дождемся второй части оптимизации количества запросов в БД от уважаемого SDKiller, а там, глядишь, и K2 2.5 выпустят.
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
Пишем мигратор для незадачливых любителей к2)))
Если я так сделаю, у меня сохранятся материалы сначала и там, и там - будут и в к2 и в обычных статьях? Если что-то не выйдет, можно будет вернуться назад?

Какие же это любители))) которые хотят перейти с к2 на content ?)))
Смотрю....
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну как какие... полюбили, полюбили и бросили... кто ж они после этого? профессионалы? :P
*

AnnaOl

  • Захожу иногда
  • 209
  • 0 / 0
Ну как какие... полюбили, полюбили и бросили... кто ж они после этого? профессионалы? :P

Не бросили. Если с запросами все образуется, то бросать не слишком и хочется - симпотный он все же :) И быстренько можно статейку сварганить.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Цитировать
полюбили, полюбили и бросили...
А если насильно замуж выдали? Я, например, поневоле с к2 связалась))))
Fatal error - это не фатально!!! Я проверила.
*

errorist

  • Захожу иногда
  • 87
  • 1 / 0
А если насильно замуж выдали? Я, например, поневоле с к2 связалась))))
заголовки мировых сми:срочно в номер - разгул К2нтрабандистов, врываются в частные сети и под угрозой format: /c вынуждают использовать к2 в своих проектах, мобилизация всех саппортов, вебидизайнеров, криейтеров платных модулей... ))))))))))))
*

Crusader_12

  • Осваиваюсь на форуме
  • 44
  • 8 / 2
У меня немного другая задача но думаю она связана частично с вашей, есть такой компонент J2XML он позволяет импортировать и экспортировать материалы но  он не работает с K2, вот если бы его можно было модифицировать для работы с K2 то можно было бы через него и перенос из K2 обратно в Joomla сделать.
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
так вам к разработчикам J2XML они то лучше знаю свой компонент!
Смотрю....
*

Crusader_12

  • Осваиваюсь на форуме
  • 44
  • 8 / 2
Я не знаю итальянского  ;D ( разработчик итальянец) да и по английски переписываться тоже че то не тянет, если бы кто код поковырял добавить возможность работы с K2...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Миграция Joomla k2 на вордпресс

Автор wishlight

Ответов: 9
Просмотров: 2730
Последний ответ 17.12.2021, 09:25:43
от stellagreen
Компонент Яндекс Карты для Joomla 3.x и 2.5.x с интеграцией с K2 и Zoo

Автор xdanru

Ответов: 8
Просмотров: 3522
Последний ответ 22.10.2021, 18:16:53
от yandex_hb
В Joomla! 3.9.1 в к2 не меняется порядок расположения материала

Автор sergspb

Ответов: 0
Просмотров: 826
Последний ответ 12.06.2021, 15:20:52
от sergspb
Содержание (оглавление) статьи для k2

Автор windroseby

Ответов: 11
Просмотров: 1145
Последний ответ 30.09.2020, 17:08:49
от windroseby
Не отображается Captcha v2 в компоненте K2 2.10.3 Joomla 2.5

Автор Александр Кардаш

Ответов: 4
Просмотров: 1228
Последний ответ 30.07.2020, 12:27:47
от Александр Кардаш