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

Yury_md

  • Осваиваюсь на форуме
  • 49
  • 2 / 0
Допустим, есть изображение 300х300 пикселей, к новости его накладно прикреплять, особенно к краткой версии. Что я делаю обычно - при вставке изображений через JCE  просто пишу нужный размер. Оказывается, изображение просто отображается в указанном формате, но по сути остаётся то же, т.е. если оригинал весил 50 кб, то и превью будет столько же. 

Т.е. очень неудобная схема. Может кто что посовтовать, чтобы картинка урезалась и обрабатывалась до нужных размеров?
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Исравляется это легко.
Устанавливаешь fboxbot.
И Превьюшка становиться очень легкой.

Мамботов, работующих по такому принципу несколько. Я сам остановился на данном.

[вложение удалено Администратором]
Всё есть в тебе. Реализовывайся.
*

Yury_md

  • Осваиваюсь на форуме
  • 49
  • 2 / 0
Исравляется это легко.
Устанавливаешь fboxbot.
И Превьюшка становиться очень легкой.

Мамботов, работующих по такому принципу несколько. Я сам остановился на данном.
то, что нужно!! спасибо большое, на странице с 5-6 изображениями во вводных материалах, получилось около 10 кб экономии, +таким образом можно вставлять большие изображения, маленькие и кликабельные.
*

winkel

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
А есть что то такое же как fboxbot, только для joomla 1.5?
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Есть тоже несколько плагинов. Вот один из них.

А вообще вопросы по Joomla 1.5 не в этой ветке  ^-^


[вложение удалено Администратором]
Всё есть в тебе. Реализовывайся.
*

winkel

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Вот один из них.

А куда необходимо установить этот фаил?
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
В смысле куда?
Он просто устанавливается, включается и настраивается. Все.
Все плагины в одном месте.
Всё есть в тебе. Реализовывайся.
*

winkel

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
В смысле куда?
Он просто устанавливается, включается и настраивается. Все.
Все плагины в одном месте.

Я имею ввиду, каким образом он используется?
Я его установил.
Зашел в менеджеры плагинов. Включил.
Захожу в редактор, но ничего нового не появилось и как его использовать - не знаю.
Как его можно настроить?
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Ничего появлятся не должно. Просто в редакторе JCE уменьшаешь картинку (мышкой тащишь) до нужных размеров (или указываешь размер эскиза при вставке изображения), ну и все, сохраняешься. Теперь картинка вместо 640на480 будет подгружаться 80на60, а при кликаньи на эскиз, будет грузиться оригинал изображения.

у этого плагина с Opera нелады. Он может за края экрана выйти, если оригинал изображения большой. В других он всё это дело маштабирует, при необходимости можно увеличить.

Всё есть в тебе. Реализовывайся.
*

winkel

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
*

winkel

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Снова есть вопрос.
Большая фотка которая появляется при нажатии не перекрывает буквы главного меню.
И получается на фоне фотки - главное меню.
Как это убрать?
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Так. Похожая ошибка и её решение http://joomlaforum.ru/index.php/topic,38422.0.html
Всё есть в тебе. Реализовывайся.
*

Plexx

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Joomla 1.5.7 не работает  mvThumbnails.zip. В чем может быть проблема??
Установил, включил. В JCE 1.5.1 вставляю картинку и указываю размер. Сохраняю.
Картинка как была большой так и осталась, только масштаб меньше на сайте.
При редактировании новости никаких изменений и вставки нету=(
<p><img height="100" alt="adress" src="images/stories/1.jpg" width="100" /></p>
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Joomla 1.5.7 не работает  mvThumbnails.zip. В чем может быть проблема??
Установил, включил. В JCE 1.5.1 вставляю картинку и указываю размер. Сохраняю.
Картинка как была большой так и осталась, только масштаб меньше на сайте.
При редактировании новости никаких изменений и вставки нету=(
<p><img height="100" alt="adress" src="images/stories/1.jpg" width="100" /></p>

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

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Исравляется это легко.
Устанавливаешь fboxbot.
И Превьюшка становиться очень легкой.

Мамботов, работующих по такому принципу несколько. Я сам остановился на данном.
А какие еще есть мамботы подобного типа для Joomla 1.0.12? Что то не могу найти никак. Просто этот мамбот не совсем то что требуется. Требуется, чтобы мамбот просто делал маленькие фото на сайте и все. Всплывающие фото у меня делает мамбот HSImage. Потому получается как бы эти мамботы дублируют друг друга.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Хотя тут подумал я...этот мамбот определенно лучше тем, что не загружает все изображение а только превьюшку, причем как ссылку. Пока убрал мамбот HSImage.
Теперь другая задача: как бы убрать название картинки в всплывающем фото? (пока просто закрасил в белый цвет, но это не совсем изящно))

Просто мне требуется быстро загружать фото на сервер, прямо в статьи, задавая его изображение на лету. Этот вроде бы все делает, но только как ссылки. А хотелось бы иногда вставлять просто фото, без ссылки на оригинал, на лету меняя размер при загрузке.
« Последнее редактирование: 11.04.2009, 10:57:26 от jem777 »
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Хотя тут подумал я...этот мамбот определенно лучше тем, что не загружает все изображение а только превьюшку, причем как ссылку. Пока убрал мамбот HSImage.
Теперь другая задача: как бы убрать название картинки в всплывающем фото? (пока просто закрасил в белый цвет, но это не совсем изящно))

Просто мне требуется быстро загружать фото на сервер, прямо в статьи, задавая его изображение на лету. Этот вроде бы все делает, но только как ссылки. А хотелось бы иногда вставлять просто фото, без ссылки на оригинал, на лету меняя размер при загрузке.

Если тебе только нужно просто менять размер изображения на лету - используй JCE. Там есть функция резайза при загрузке. Работает. Проверено.
Всё есть в тебе. Реализовывайся.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Исравляется это легко.
Устанавливаешь fboxbot.
И Превьюшка становиться очень легкой.

Мамботов, работующих по такому принципу несколько. Я сам остановился на данном.
vdr, ты меня недопонял. Интересуют подобные fboxbot мамботы. Или переделка этого как выше сказано.
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Подобный - mvThumbnails
+ функция кликаешь по картинки, переходишь в статью, если находишся на главной.
Если в статье, то всплывающее окно.
Выбирать тип вроде можно было. Отключить совсем всплывающие окна тоже вроде можно. Посмотри.
P.S. Это для J1.5

[вложение удалено Администратором]
Всё есть в тебе. Реализовывайся.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Спасибо, нужен такой же но для Joomla 1.0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться