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

dabrowski

  • Осваиваюсь на форуме
  • 41
  • 2 / 0
Добрый день.
Мне достался заброшенный интернет-магазин, реализованный на Joomla 1.5.26. Плагин интернет-магазина - VirtueMart. По сути, это скорее каталог товаров, нежели интернет-магазин, т.к. оплата через интернет не реализована и не планируется (пока).

Задача:
1. Привести сайт к полностью работоспособному состоянию.
2. Поддерживать каталог товаров в актуальном состоянии.
3. Привлечь покупателей.


Я начинающий веб-разработчик (вряд ли у меня есть право так себя называть, хех) - знаю только основы HTML и по чуть-чуть слышал о много чем.
В частности, о том, что Joomla 1.5.x больше не поддерживается и имеет много уязвимостей.

Решая первую задачу, я набросал себе примерный алгоритм действий и появились первые вопросы:
1. Более-менее разобраться с принципом работы Joomla

2. Перенести сайт с хостинга на локальный сервер (здесь возникли проблемы, но в интернете много гайдов - постараюсь решить самостоятельно)
Ведь сайт можно легко уронить неумелыми руками, поэтому лучше все эксперименты проводить над его копией, верно?

3. Обновить Joomla до версии ...
И тут вопрос. 2.5 или 3.0? И стоит ли? Как я понял, миграция - это очень муторный процесс, что-то может перестать работать или работать неправильно и тд. В целом, сайт функционирует. Я пока не протестил весь функционал, но по-крайней мере товары он отображает корректно и я знаю как их редактировать.

4. Обновить все компоненты. (в частности, VirtueMart) Опять же неуверен стоит ли?
Здесь сразу же встает вопрос о совместимости версий компонентов с конкретной версией Joomla.
В общем, снова проблема. Может

5. Наполнить его контентом и редактировать старый. (решаемо).

6. SEO (еще предстоит научиться)


В моем тривиальном понимании, "привести к работоспособному виду" значит "поставить все самое последнее, протестить все и вся, а только потом заливать на хостинг".

Главный вопрос: Стоит ли заморачиваться? Т.к. я делаю это впервые, на все действия уходит уйма времени, а начальство дало месяц, чтобы привести сайт в порядок. Правильно ли я мыслю?

Извиняюсь за слишком длинный пост.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А если начальство скажет что через месяц нужно построиьб башню метров в 30?
*

dabrowski

  • Осваиваюсь на форуме
  • 41
  • 2 / 0
Пусть это займет больше времени, думаю, что вопрос с начальством можно разрешить.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Если начальству нужен продающий сайт, то им стоит пар лет обучатбь 2-3 спецов.
Имхо дешевле заказать.
Но это Россия, тут не считают денег..
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Мдя. Видимо чисто российская ситуация. Если
В целом, сайт функционирует.
Займитесь 2 и 3 задачей. Не стоит трогать работающий механизм.
*

dabrowski

  • Осваиваюсь на форуме
  • 41
  • 2 / 0
Я предупредил, что толком ничего не умею, но очень хочу научиться. Обучать меня, к сожалению, некому. Google, да форум, собственно.
Не могли бы вы ответить на вопросы, заданные в оп-посте?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Одна тема это один вопрос. Или в комм раздел
*

dabrowski

  • Осваиваюсь на форуме
  • 41
  • 2 / 0
Passer, спасибо за ответ. Тоже склоняюсь к этому выводу.
В процессе моих двухдневных экспирементов я решил проблему с установкой расширений Joomla, с помощью саппорта хостинга (проблема в configuration.php), сделал бэкап, пытался развернуть все это на denwer - встало криво. В общем, куча проблем.

Думаю, буду пока корректировать контент, а в свободное время экспирементировать на локалхосте (если удастся поднять его).
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Думаю, буду пока корректировать контент, а в свободное время экспериментировать на локалхосте (если удастся поднять его).
Правильно.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

altvvc

  • Давно я тут
  • 523
  • 23 / 0
Видеоуроки в том же ютубе погляди.
Красота спасет мир, а пофигизм спасет нервы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Re: Какой интернет-магазин выбрать?

Автор Костя Ка

Ответов: 2
Просмотров: 1462
Последний ответ 18.02.2014, 18:38:08
от egorovv
Компонент для магазина электронных товаров

Автор nikita1981

Ответов: 15
Просмотров: 2408
Последний ответ 15.11.2013, 14:32:25
от varX
Как определить каким образом был закачан товар в интернет-магазин с помощью joomshoping?

Автор Devastar155

Ответов: 1
Просмотров: 1296
Последний ответ 21.02.2013, 17:09:42
от ELLE
Проблема с браузером Интернет Эксплорер.

Автор ArturC

Ответов: 1
Просмотров: 1139
Последний ответ 19.06.2012, 17:08:16
от ArturC
Возможно ли копирование сайта Joomla полностью? через интернет?

Автор piter

Ответов: 6
Просмотров: 6189
Последний ответ 31.01.2012, 18:28:20
от SmokerMan