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

kilnart

  • Захожу иногда
  • 205
  • 0 / 0
K2 и дубли изображений
« : 24.01.2016, 01:29:27 »
Всем привет. Нарвался на небезызвестную проблему с компонентом К2, при добавлении изображения к статье, изображение дублируется 7 раз: 6 изображений разного формата в папку media/k2/items/cache и одно в папку media/k2/items/src.

Первое что не нравилось, так это дублей очень большого размера. Если исходник весит в 30кб, то созданный дубль XL будет весить примерно 200-250кб. Плюс дублирующие изображения меньшего размера, каждый со своим весом. На лицо загрузка хостингово пространства бесполезными изображениями.

Окей, частично разобрался с проблемой благодаря статьи http://taskjoom.ru/stat-k2/item/44-nastrojka-kesha-izobrazhenij-v-komponente-k2. Теперь К2 создает только одно изображение и прикрепляет его везде где только можно.

Вроде как проблема решена, но это только на первый взгляд.

Разработчики решили конвертировать все добавляемые изображения в формат jpg. Теперь, когда добавляю изображение весом 16кб, даже в формате jpeg, К2 создает из него jpg с размером 30кб.

Учитывая то, что трепетно отношусь к созданию изображений, а в конце пытаюсь сжать до предела без потери качества, эта проблема серьезная. Пробовал прикреплять к статье изображения, находящиеся уже на сервере, но К2 за каким то фигов, все равно создает свое изображение, преобразовывает его в jpg и прикрепляет к статье.

Вопрос у меня такой, можно ли уговорить К2, прикреплять изображения к статье, без каких бы то ни было преобразований. Какое изображение на сервере есть, такое и добавлять, а уж я сам дальше, при помощи CSS, где надо уменьшу, где надо увеличу.

Надеюсь на помощь, а то уже всю голову переломал.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: K2 и дубли изображений
« Ответ #1 : 24.01.2016, 10:23:14 »
$handle->Process($savepath);
это в моделе у вас прописывается по пути administrator/components/com_k2/models/item.php
закомментируйте строку и из 5 изображений К2 будет делать 3: оригинал, среднее, превью.
если не переопределяли компонент и учтите-обнова затрёт, если дефолтное измените.
///
а вот что вы там написали, что 7 изо и т.д., К2 делает только 5 картинок.
"Уговорить" К2 можно, но тогда вам нужно 4 файла пепеписать, т.к. редактор не поймёт, что за изо и если у вас "увеличилка" или "всплывашка" стоит, опять же по месту смотреть надо.
///
я JCE Box для К2 обычно ставлю для редактора JCE. Ни разу не было конфликтов.
(это если будете нормальным путём делать)
« Последнее редактирование: 24.01.2016, 10:30:41 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

kilnart

  • Захожу иногда
  • 205
  • 0 / 0
Re: K2 и дубли изображений
« Ответ #2 : 24.01.2016, 13:51:40 »
может я чего то не понимаю, с какой целью создаются разного размера изображения. нет, я конечно понимаю, что в разных местах подставляется изображение со своим размером, но есть ли в этом реальная польза? почему не взять одно изображение с хорошим качеством и увеличивать или уменьшать его через CSS?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Можно ли изменить папку для сохранения изображений в K2?

Автор lolitma3

Ответов: 3
Просмотров: 1319
Последний ответ 16.01.2018, 18:04:48
от Akeksandr
Редактирую генерируемое название для изображений K2

Автор kilnart

Ответов: 2
Просмотров: 1398
Последний ответ 28.10.2017, 12:18:03
от Septdir
K2 и модуль мультиязычности FaLang плодят дубли

Автор Template_user

Ответов: 6
Просмотров: 1635
Последний ответ 22.02.2017, 14:27:43
от otec1klas
Удалить дубли страниц

Автор kolhoz

Ответов: 2
Просмотров: 1342
Последний ответ 21.02.2017, 11:10:10
от voland
Как отменить автоматическое уменьшение изображений в K2?

Автор abrodski

Ответов: 13
Просмотров: 1268
Последний ответ 10.09.2016, 02:20:17
от abrodski