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

pikachu

  • Осваиваюсь на форуме
  • 46
  • 7 / 0
1) снимаете дамп базы из Joomla 1.5 с таблицами галереи (префикс jos_datsogallery*)

2) в настройках галереи на Joomla 1.5 смотрите, где физически расположены картинки. Вам нужно узнать путь до папок: dg_originals, dg_thumbnails, dg_pictures

3) копируете содержимое всех трех папок к себе.

4) заливаете все 3 папки (вместе с картинками в них) на новое место, где установлена новая версия Joomla (обычно это /images или /images/stories)

5) открываете дамп базы галереи в любом редакторе, ваша задача заменить все старые (от Joomla 1.5) owner_id на новый. По умолчанию в Joomla 1.5 owner_id = 63, в Joomla 2.5 = 437 (емнип), если что свой id можно узнать в разделе Пользователи, в административной части.
соответственно, если вы единственный администратор на сайте, то вызываете функцию поиска с заменой в вашем редакторе, в верхнем поле пишете
Код
, 63,
, а в нижнем
Код
, 437,
.
Так же нужно заменить префикс таблиц. В Joomla 2.5 уже нет jos_*. Какой у вас префикс таблиц можете узнать через сторонние пакеты управления БД, например, Phpmyadmin.

6) заливаете дамп галереи в новую базу с Joomla 2.5

7) в административной части устанавливаете сам компонент галереи. если установка пройдет с ошибками, проведите установку еще раз - прям поверх существующей.

8 ) если включен показ ошибок PHP увидите кучу варнингов - идёте в настройки, меняете путь до оригинальных картинок (например /images/stories/dg_originals). за тем же идёте, если после пункта №7 не видите картинки в разделе Изображения.

9) переходите в раздел Изображения для проверки...смотрите, что картинки все на месте.

10) по умолчанию категории неопубликованы. нужно в менеджере баз выполнить запрос:
Код
UPDATE zzzz_datsogallery_catg SET access = access + 1
, где вместо "zzzz" подставляете свой префикс таблиц.

11)...profit!


Данные действия были проделаны с Joomla 1.5.26 & DatsoGallery 1.8.9 > Joomla 2.5.7 & DatsoGallery 1.2.1. В галерее, где около 9 тысяч изображений.
« Последнее редактирование: 24.09.2012, 20:12:36 от pikachu »
*

Saille

  • Осваиваюсь на форуме
  • 10
  • 3 / 0
Re: Перенос галереи с Joomla 1.5 на 1.6, 1.7, 2.5
« Ответ #1 : 16.10.2012, 11:22:39 »
Данные действия были проделаны с Joomla 1.5.26 & DatsoGallery 1.8.9 > Joomla 2.5.7 & DatsoGallery 1.2.1.
1.2.1 - это что за версия такая?.. Мне почему интересно-то, просто у меня сейчас Joomla 1.5.25 и галерея 1.8.5, которые хочу перевести на 2.5.6 и 1.20 соответственно, а у галерей в БД структуры таблиц местами различны, так просто не перетащишь таким способом...
*

pikachu

  • Осваиваюсь на форуме
  • 46
  • 7 / 0
Re: Перенос галереи с Joomla 1.5 на 1.6, 1.7, 2.5
« Ответ #2 : 17.10.2012, 22:24:31 »
Имелось в виду 1.21, конечно же.

Всё прекрасно перетаскивается, если следовать пунктам стартового сообщения.
*

Saille

  • Осваиваюсь на форуме
  • 10
  • 3 / 0
Re: Перенос галереи с Joomla 1.5 на 1.6, 1.7, 2.5
« Ответ #3 : 18.10.2012, 04:56:12 »
То есть в 1.8.9 и 1.21 структуры таки одинаковые?.. Просто в 1.8.5 поле даты загрузки изображения - текстовое, а в 1.20 уже datetime. Потому не знаю, как с этим быть. Или новая галерея нормально потом берет дату в старом типе?..
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Перенос галереи с Joomla 1.5 на 1.6, 1.7, 2.5
« Ответ #4 : 24.11.2013, 06:21:11 »
Обновил на Joomla 1.0 до 2.5.16.
На Joomla 1.5.26 ставил Datso 1.8.4, на 2.5.16- Datso 1.2.
На Joomla 2.5.16 нужна только папка dg_originals . Картинки предосмотра кешируются в /cache
В таблицах Datso _datsoGallery и _datsogallery_catg , редактировал поля .Phpmyadmin в помощь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенос с 1.29 на 3+

Автор flyte

Ответов: 1
Просмотров: 3394
Последний ответ 05.12.2017, 17:29:25
от SeBun
Новая версия слайд шоу Datso Gallery Slide Show 3.0.0 для Joomla! 3

Автор strwrk

Ответов: 1
Просмотров: 3735
Последний ответ 26.08.2017, 16:38:28
от strwrk
DatsoGallery для Joomla 3.x

Автор vbulletinX

Ответов: 17
Просмотров: 6953
Последний ответ 17.06.2017, 11:05:19
от KisoN
DatsoGallery забросили? Есть альтернативы для Joomla 3.x ?

Автор 1day

Ответов: 5
Просмотров: 5892
Последний ответ 13.12.2015, 19:46:11
от scriner
Лишние поля при загрузке фото DatsoGallery Joomla 2.5

Автор lelonko

Ответов: 1
Просмотров: 3107
Последний ответ 10.03.2015, 13:17:41
от kikimora17