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

 !Есть крупный довольно крупный сайт (>200стр.), с системой управления. Надо установить Joomla и управлять сайтом уже с нее, а не со старой CMS. Каким образом это реализовать? Грубо говоря, как подключить уже существующий контент к Joomla?
пасиба заранее !
*

vital_s1

  • Захожу иногда
  • 267
  • 26 / 0
  • Joomla магия
Нужно много всего сделать.
Переверстать шаблон специально для Joomla, затем плотно поработать с базой данных и т.д.
Вообще то нужно сначала знать твои исходные данные, на чем сайт крутится, какая база, короче все ТТХ. Только после этого можно точно сказать последовательность действий.
Не бойся спрашивать, без этого ни как! -)

Сайт вертится на PHP, база MySQL.
А есть CMS, которая в установке проще чем Joomla и не очень сильно уступающая в функциональности? Не очень то и хочется переверстывать всё (уж очень велики объемы кода).
*

vital_s1

  • Захожу иногда
  • 267
  • 26 / 0
  • Joomla магия
А есть CMS, которая в установке проще чем Joomla и не очень сильно уступающая в функциональности? Не очень то и хочется переверстывать всё (уж очень велики объемы кода).
Такой вопрос думаю не уместен на этом форуме! Joomla всем cms -ам   CMS!
Не бойся спрашивать, без этого ни как! -)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
мгы.
типа "я хочу переехать. в другой город, в квартиру с другой планировкой. но чтобы это было легко и приятно."
так не бывает, к сожалению.
давайте ссылку на сайт, сроки, планируемый бюджет.
в плане шаблонов - Joomla, как я понимаю, одна из самых вменяемых CMS. Структура БД тоже вполне понятна.
На форуме достаточно много программистов, способных сделать мигратор для контента, так что всё, в итоге, упирается в лично ваше желание работать именно с Joomla и, разумеется, деньги.

Хм, я не прошу об оказании услуги миграции контента... Мне всего лишь хотелось бы получить указание на то, как это сделать грамотно. Ну или ссылку на мануал. Я сам веб-дизайнер просто, только начинающий. Я понимаю, что не так просто это дело заставить работать, но всё же учиться то надо...
*

vital_s1

  • Захожу иногда
  • 267
  • 26 / 0
  • Joomla магия
На форуме есть тема по миграции данных с версии на версию Joomla, но там также присутствуют несколько вариантов миграции без помощи специальных скриптов, - миграция с созданием дампов баз, заливки с нуля, особенности, возможные проблемы и т.д. ...
P.S.  все мы тут учимся -))
Не бойся спрашивать, без этого ни как! -)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
перенос сайта с одной CMS на другую -задача НЕ для начинающего веб-дизайнера.
именно поэтому и посоветовал обратиться к профессионалам.
но если время позволяет - лопата в руки и - КОПАТЬ! :)
просто как "веб-дизайнер" ты вполне сможешь пределать шаблон под Joomla, вручную создать нужное дерево разделов и категорий и вручную же перенести контент.
а не_нечинающий програмиист может написать скрипт миграции, который сделает перенос контента автоматически или полуавтоматически.
можеь попросить задаром кого-нить это сделать, но что-то я сильно сомневаюсь, что это кому-то здесь надо.
*

vital_s1

  • Захожу иногда
  • 267
  • 26 / 0
  • Joomla магия
можеь попросить задаром кого-нить это сделать, но что-то я сильно сомневаюсь, что это кому-то здесь надо.
только татарам задаром -)) времена альтруизма прошли!
Zinder ты если надумал перейти на Joomla, то хотя бы почитай соответствующие темы, а потом начни делать. Ну а если не будет получаться спрашивай, помогут. Если не хочешь заморачиваться - оплачивай, тебе помогут еще быстрее, но знать ни чего не будешь -))
Не бойся спрашивать, без этого ни как! -)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как заставить Joomla 1.5 работать на сервере с MySQL версии 5.7 и выше?

Автор Palomnik

Ответов: 14
Просмотров: 8642
Последний ответ 01.10.2024, 00:22:40
от jesus
Восстановить сайт, но на другой адрес

Автор Escander

Ответов: 14
Просмотров: 3048
Последний ответ 02.02.2022, 14:50:07
от draff
Как установить Joomla 1.5 на php 7?

Автор Marius

Ответов: 8
Просмотров: 4248
Последний ответ 30.05.2021, 21:11:21
от Marius
Как перенести сайт с сервера на сервер? (с хостинга на локалку и наоборот)

Автор djed9

Ответов: 244
Просмотров: 122157
Последний ответ 06.07.2020, 23:28:32
от SeBun
При попытке войти в админку 404 ошибка компонента - Joomla 1.5: Общие вопросы

Автор omezik

Ответов: 1
Просмотров: 3810
Последний ответ 30.08.2019, 16:10:56
от voland