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

Antig

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Люди добрые, будьте так добры, подскажите, что делать?
Ситуация такова:
Поставил данную галерею версии 1.8.8. Всё хорошо, работает замечательно! Но, если я создаю категорию или фото с русскими символами (буквами), при сохранении они превращаются в "?" - знаки вопросов.

Перепробовал всё, что смог найти:

Цитировать
Открыл файл .../language/ukrainian.php ( также работет для .../language/russian.php ) текстовым редактором Notepad2, посмотрел кодировку (Файл-Кодировка) - было UTF-8 с сигнатурой, сделал просто UTF-8 и сохранил, перезалил файл и знаки вопросов исчезли. Теперь сайт отображает правильно мой язык. Надеюсь кому поможет

Цитировать
попробуй зайти в php Myadmin находишь там таблицу ( jos_datsogallery)открываешь ее, дальше выбираешь вкладку СТРУКТУРА и смотришь столбец СРАВНЕНИЕ там должно быть написано utf8_general_ci,если пусто то ничего не меняешь, если написано что-то другое, нажимаешь на карандашик (изменить), и в поле СРАВНЕНИЕ выбираешь utf8_general_ci, и так со всеми строками в этой таблице,там где есть другая кодировка,потом выбираешь вкладку ОПЕРАЦИИ и там в СРАВНЕНИЕ тоже меняешь на utf8_general_ci.и естественно везде жмешь кнопку СОХРАНИТЬ.потом проделываешь все это с таблицами (jos_datsogallery_catg, jos_datsogallery_comments, jos_datsogallery_votes) если они у тебя присутствуют

Цитировать
1. Распаковываем com_datsogallery_1.8.4.3.zip
2. Находим файл: com_datsogallery_1.8.4.3\site\language\russian.php
3. Меняем кодировку текста в файле на UTF-8 (без bom), т.к. по умолчанию стоит кодировка просто UTF-8
4. Архивируем в zip компонент
5. Радуемся нормальному русскому языку

Цитировать
Файлы:
/com_datsogallery/language/russian.php
/com_datsogallery/datsogallery.php
/com_datsogallery/sub_viewdetails.php
/components/com_datsogallery/admin.datsogallery.html.php

Изменить кодировку у этих файлов в UTF-8 без добавления сигнатуры "BOM" !
Добавить строчку в файл .htaccess (AddDefaultCharset UTF-8)

Но ничего не помогло!
Помогите пожалуйста!
« Последнее редактирование: 10.06.2011, 14:53:05 от Antig »
*

Antig

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Соврал!
Названия фото отображаются на русском отлично! Но отображались тоже криво.
Вот названия категорий... всё равно знаки ?
« Последнее редактирование: 10.06.2011, 00:15:29 от Antig »
*

Antig

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Решил данную проблему!

Если у Вас названия категорий и названия изображений отображаются в виде "?" - знаков вопросов, то, удалите все изображениями вместе с категориями, а затем сделайте вот это:

Цитировать
Нужно зайти в php Myadmin находишь там таблицы все что связанны с данной шалереей (их 8 шиук) открываешь их по очереди, дальше выбираешь вкладку СТРУКТУРА и смотришь столбец СРАВНЕНИЕ там должно быть написано utf8_general_ci, если пусто то ничего не меняешь, если написано что-то другое, нажимаешь на карандашик (изменить), и в поле СРАВНЕНИЕ выбираешь utf8_general_ci, и так со всеми строками в этой таблице, там где есть другая кодировка. Затем выбираешь вкладку ОПЕРАЦИИ и там в СРАВНЕНИЕ тоже меняешь на utf8_general_ci. И естественно везде жмешь кнопку СОХРАНИТЬ. Потом проделываешь все это с таблицами (jos_datsogallery_catg, jos_datsogallery_comments, jos_datsogallery_votes) если они у тебя присутствуют

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

Может кому поможет!
« Последнее редактирование: 10.06.2011, 14:50:20 от Antig »
*

Восток

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
 :'( Красавчик я чуть сума не сошел,а оно вишь,надо было удалить :'(
*

Goblin17

  • Захожу иногда
  • 226
  • 2 / 2
Спс работает. У меня была проблема в кодировке в VK сделал как ты написал, только фото не удалял и стало нормально отображать заголовок без "?"
*

MuadDiib

  • Новичок
  • 2
  • 0 / 0
Помогите с проблемой, есть два домена, два сайта, один имеет англоязычный домен типа domain.com, там галерея работает, но на рускоязычном домен.рф Flash загрузчик не загружает изображения. Куда смотреть, что делать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

В какую галерею перенести все фото из DatsoGallery?

Автор darkknight

Ответов: 5
Просмотров: 3386
Последний ответ 08.12.2021, 18:45:41
от sergeytolkachyov
[Решено] Не работает голосовалка Datso

Автор metiss

Ответов: 8
Просмотров: 5387
Последний ответ 18.12.2016, 17:39:30
от dmitry_stas
Загружаю новое фото а показывает другое фото

Автор sknc

Ответов: 0
Просмотров: 4571
Последний ответ 21.11.2015, 21:30:42
от sknc
Сортировка категорий (альбомов)

Автор vaganov

Ответов: 0
Просмотров: 4581
Последний ответ 25.06.2015, 14:07:49
от vaganov
Как вывести миниатюры из всех категорий сразу?

Автор arts

Ответов: 8
Просмотров: 5212
Последний ответ 26.05.2015, 19:47:46
от arts