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

mavik

  • Давно я тут
  • 570
  • 86 / 2
Для бесплатной версии между 2.2.5 и 2.3.2 ничего нового не было добавлено?

Последним существенным изменением было добавление возможности выбирать между библиотеками GD2, ImageMagick и GraphicsMagick, если они установлены на сервере. Остальные поправки либо исправляют ошибки, либо не столь существенны и заметны.
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Yamamura

  • Захожу иногда
  • 99
  • 3 / 0
И по поводу бага. Если в textarea записан код вставки изображения (ну допустим для баннерообмена), то на сайте исходных код в textarea выводится с лишним кодом (выделил жирным):
Цитировать
<a href="http://site.ru/" title="text" target="_blank"><img src="http://site.ru/images/banner.jpg" width="88" height="31" border="0" alt="text" class="" data-mavikthumbnails-popuptype="none" /></a>

Плюс писал об этом ранее, но что-то так и не исправлена опечатка:
"Учитывать не размеры, а плащадь"
« Последнее редактирование: 19.04.2017, 17:28:25 от Yamamura »
*

mavik

  • Давно я тут
  • 570
  • 86 / 2
Если в textarea записан код вставки изображения (ну допустим для баннерообмена), то на сайте исходных код в textarea выводится с лишним кодом.
В текущей версии это можно обойти только полным отключение обработки статьи/модуля плагином (настройки/контекст).
Особая обработка есть только для изображений внутри ссылок, надо добавить еще список тегов внутри которых изображения обрабатывать не надо .
www.mavik.com.ua - Создание веб-сайтов на основе CMS Joomla.
Создание компонентов и модулей.
*

Yamamura

  • Захожу иногда
  • 99
  • 3 / 0
В текущей версии это можно обойти только полным отключение обработки статьи/модуля плагином (настройки/контекст).
Страница с этим textarea имеет следующую ссылку (посмотрел через вставку материала):
index.php?option=com_content&view=article&id=732&catid=34&Itemid=162

В настройках контекста добавляю следующее:



Никакого эффекта не наблюдаю — в textarea по-прежнему лишний код.

PS Кстати, удаление опций настроек на скрине выше не работает — нажимаю на красную кнопку, но ничего не происходит. Опции условий и сами контексты удаляются, а опции настроек — нет.
*

Yamamura

  • Захожу иногда
  • 99
  • 3 / 0
Решил данную проблему заменой в textarea обычного кода на экранированный — в этом случае плагин лишний код не добавляет. Может кому полезно будет.
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
Можно ли настроить плагин таким образом, чтобы первая картинка не была ссылкой на полную новость?
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Можно ли настроить плагин таким образом, чтобы первая картинка не была ссылкой на полную новость?

Вы вставляете картинку в текст ч/з редактор? Тогда, в настройках плагина - вкладка Контекст, «Контекстно-зависимая обработка» - поставить «Нет».

Если через вкладку «Изображения и ссылки» - в настройках плагина (PRO) вкладка «Изображения статьи»
« Последнее редактирование: 04.06.2017, 15:54:00 от Театрал »
*

Gover

  • Захожу иногда
  • 189
  • 3 / 0
Вы вставляете картинку в текст ч/з редактор? Тогда, в настройках плагина - вкладка Контекст, «Контекстно-зависимая обработка» - поставить «Нет».
Тогда thumbs не создаются.

Извиняюсь, создаются. Была отключена настройка "Размер по умолчанию".
« Последнее редактирование: 04.06.2017, 18:12:35 от Gover »
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Тогда нужно проверить вкладку «Плагин» в настройках плагина и проверить, что там.

Либо использовать размер по умолчанию во вкладке «Пропорции и размеры».

Поразбирайтесь, хороший плагин!  ;)
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Извиняюсь, создаются. Была отключена настройка "Размер по умолчанию".

Не увидел, не обновил стр.. Всё равно поразбирайтесь!
*

Old Daemon

  • Захожу иногда
  • 119
  • 4 / 0
Обновлял сайт с 2.5 до 3.7. Перед обновлением плагин не удалил, а удалил только после обновления, когда увидел проблемы.
После удаления накатил версию для J3, установилась нормально, но в админке плагина, вместо названий разделов названия переменных (PLG_MAVIKTHUMBNAILS_SIZE, PLG_MAVIKTHUMBNAILS_GALLERY, PLG_MAVIKTHUMBNAILS_GALLERY_DESC и т.п.), кроме того, сам плагин работает тоже через раз, где хочет работает, где не хочет не работает .

Что делать ? Думаю при удалении остался где-то мусор и теперь конфликтует с новой версией. Подскажите пути решения ?


Всем спасибо, допер сам. Почистил вручную что оставалось после деинсталляции, потом установил снова.
« Последнее редактирование: 06.07.2017, 21:22:51 от Old Daemon »
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Доброго дня!

Обновил несколько сайтов с 3.6.5 сразу до 3.7.3.

На всех стоит PRO версия плагина. Везде использую опцию "обработки привязанных изображений статьи".

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

1. Такой вот способ:
Код
<?php echo $introimg = JHtml::_('content.prepare', $introimg, '', 'sb_img.content'); ?>
при включенной "обработке привязанных изображений статьи" перестаёт работать, если отключить работает как раньше.

2. Ещё, если использовать библиотеку в шаблоне модуля новостей, по этому примеру http://joomlaforum.ru/index.php/topic,291071.msg1443362.html#msg1443362
У меня вот так,
Спойлер
[свернуть]
при включенной "обработке привязанных изображений статьи" если в материале нет изображения для полного текста статьи (второго) - всё нормально, если есть картинка полного текста, в модуле картинка вступительного пропадает... при выключенном параметре плагина всё как и нужно.

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

Подскажите что-нибудь!
« Последнее редактирование: 15.07.2017, 13:42:11 от Театрал »
*

ADIMAG

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Добрый день! Возникла такая проблема. При обновлении Joomla! до версии 3.8.0 плагин стал работать неправильно. При нажатии на миниатюру изображения изображение открывается бес проблем, но после закрытия изображения панелька навигации начинает отображаться в верхнем левом углу сайта. И получается так что сколько раз нажал на картинку столько панелек и остаётся висеть. После обновления страницы эти панельки исчезают.
Пробовал переустановить плагин результатов не дало, удалял кэш и на сайте и в браузере, всё бестолку. Кто знает как исправить эту проблему. Подскажите буду очень благодарен. Не хотелось бы переходить на другой плагин как-то уж привык к нему.
Ссылка на сайт:
http://adimag-joomla.tw1.ru/
« Последнее редактирование: 20.09.2017, 08:36:22 от ADIMAG »
*

sokol78

  • Новичок
  • 1
  • 0 / 0
Добрый день! Возникла такая проблема. При обновлении Joomla! до версии 3.8.0 плагин стал работать неправильно. При нажатии на миниатюру изображения изображение открывается бес проблем, но после закрытия изображения панелька навигации начинает отображаться в верхнем левом углу сайта. И получается так что сколько раз нажал на картинку столько панелек и остаётся висеть. После обновления страницы эти панельки исчезают.
Пробовал переустановить плагин результатов не дало, удалял кэш и на сайте и в браузере, всё бестолку. Кто знает как исправить эту проблему. Подскажите буду очень благодарен. Не хотелось бы переходить на другой плагин как-то уж привык к нему.
Ссылка на сайт:
http://adimag-joomla.tw1.ru/
Можно, временно, до решения проблемы, в настройках плагина включить любой другой (кроме хайслайд) тип всплывающего окна.
*

ADIMAG

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Да, пока так и придётся сделать или просто подожду пока с обновлением основного сайта.
Можно, временно, до решения проблемы, в настройках плагина включить любой другой (кроме хайслайд) тип всплывающего окна.
Да, пока так и придётся сделать или просто подожду пока с обновлением основного сайта.
*

Ele_samara

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Добрый день! Обновила джумлу до версии 3.6.5, установила новую версию плагина 2.3.3 - установился нормально, но не сохраняются никакие настройки (кнопки "Сохранить" и "Сохранить и закрыть" не работают, реагирует только на кнопку "Закрыть").
И вместо нормальных названий настроек почему-то названия переменных (см. скрин).
Как исправить?

*

Ele_samara

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
С кнопками вопрос решила, это было не связано с плагином.
Остается вопрос с названием настроек: подскажите, как сделать нормальный читаемый перевод вместо названий переменных?
*

Ele_samara

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
И еще - подскажите, пожалуйста, в блогах плагин теперь не работает? У меня он теперь работает только в статьях. В настройках про блоги не нашла ничего.  >:(
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Остается вопрос с названием настроек: подскажите, как сделать нормальный читаемый перевод вместо названий переменных?
Здравствуйте.
У такой проблемы могут быть разные причины... Проверьте есть ли у вас сами файлы локализации вот тут: plugins/content/mavikthumbnails/language/ru-RU/ru-RU.plg_content_mavikthumbnails.ini

Если нет таких файлов или папок попробуйте закачать папку "language" из установочного пакета.
Или (даже если есть) попробуйте удалить плагин из админки и установите его заново, настройки потом заполните как было, их там не много.

И еще - подскажите, пожалуйста, в блогах плагин теперь не работает?

Работа плагина в макете блога - это вкладка "Изображения статьи", у вас сейчас с непереведённым "PLG_MAVIKTHUMBNAILS_ARTICLE_IMAGES". Но эта PRO функция, будет работать в платной версии плагина - стоит 10$.
*

wishlight

  • Гуру
  • 5059
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
Код
Warning: file_exists(): open_basedir restriction in effect. File(/media/com_igallery/images/1px-placeholder.png) is not within the allowed path(s): (/var/www/:/tmp/) in /var/www/domen.xx/data/www/domen.xx/libraries/mavik/thumb/generator.php on line 262

Что-то они с ignite gallery не дружат. Кому писать? Сюда или в поддержку галереи? По плагин это обрабатывать не должен.
« Последнее редактирование: 02.01.2018, 08:51:03 от wishlight »
*

Matysh

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Интересно, есть ли прогресс с новой версией, когда ее можно будет ожидать? И есть еще одна очень классная библиотека для просмотра, photoswipe, было бы круто увидеть ее в новой версии.
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Делаю шаблон на основе Bootstrap 4.
Ставка на скорость загрузки страницы (минимум сторонних CSS и js файлов).

Думаю о том, чтобы связать плагин mAvik Thumbnails и Bootstrap - а именно: чтобы увеличение картинки происходило БЕЗ дополнительных библиотек- в модальном окне Modal от Bootstrap.
Т.е. без Slimbox, Magnific и т.д.

Коллеги, если кто сталкивался с этим, не поделитесь решением?
Возможно, будет интересно: Интеграция с Ozon
*

Театрал

  • Захожу иногда
  • 232
  • 7 / 0
Коллеги, если кто сталкивался с этим, не поделитесь решением?

Можно создать собственный тип popup в "plugins\content\mavikthumbnails\decorators\popups" по аналогии с уже существующими, а так же в "plugins\content\mavikthumbnails\tmpl".

Или проще переопределить уже существующий (любой) в своём шаблоне. А в настройках плагина "система" не "Подключать ява-скрипты и стили".
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Можно создать собственный тип popup
Пожалуй, так и сделаю. Спасибо.
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Небольшой seo допил для версии Pro, чтобы актуальный alt добавлялся к изображениям, если при редактировании материала пользователь не указал alt (во вкладке "Изображения и ссылки"):

Файл article_images.full.php (можно переопределить в своём шаблоне), для статьи:
Код
<?php
/**
 * @package Joomla
 * @subpackage mavikThumbnails 2
 * [member=126442]copyright[/member] 2014 Vitaliy Marenkov
 * @author Vitaliy Marenkov <admin[member=2249]mavik[/member].com.ua>
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 *
 * Plugin automatic replaces big images to thumbnails.
 */
defined('_JEXEC') or die();

if ($this->images->image_fulltext_alt) {
    $img_alt = htmlspecialchars($this->images->image_fulltext_alt);
} else {
    $img_alt = htmlspecialchars($this->item->title);
}

?>
<?php $imgfloat = (empty($this->images->float_fulltext))? $this->itemParams->get('float_fulltext') : $this->images->float_fulltext; ?>
<img src="<?php echo htmlspecialchars($this->images->image_fulltext); ?>"
    alt="<?php echo $img_alt; ?>"
    <?php if ($this->images->image_fulltext_caption): ?>
        class="caption pull-<?php echo $imgfloat; ?> img-thumbnail" title="<?php echo $img_alt; ?>"
    <?php else: ?>
        class="pull-<?php echo $imgfloat; ?> img-thumbnail"
    <?php endif; ?>   
    width="<?php echo $this->plugin->params->get('article_images_full_width', 200); ?>"
    height="<?php echo $this->plugin->params->get('article_images_full_height', 200); ?>"
/>
<div>
   
</div>

Файл article_images.intro.php (тоже можно переопределить), для категории:
Код
<?php
/**
 * @package Joomla
 * @subpackage mavikThumbnails 2
 * [member=126442]copyright[/member] 2014 Vitaliy Marenkov
 * @author Vitaliy Marenkov <admin[member=2249]mavik[/member].com.ua>
 * @license GNU General Public License version 2 or later; see LICENSE.txt
 *
 * Plugin automatic replaces big images to thumbnails.
 */
defined('_JEXEC') or die();

if ($this->images->image_intro_alt) {
    $img_alt = htmlspecialchars($this->images->image_intro_alt);
} else {
    $img_alt = htmlspecialchars($this->item->title);
}

?>
<?php $imgfloat = (empty($this->images->float_intro))? $this->itemParams->get('float_intro') : $this->images->float_intro; ?>
<img src="<?php echo htmlspecialchars($this->images->image_intro); ?>"
    alt="<?php echo $img_alt; ?>"
    <?php if ($this->images->image_intro_caption): ?>
        class="caption pull-<?php echo $imgfloat; ?>" title="<?php echo $img_alt; ?>"
    <?php else: ?>
        class="pull-<?php echo $imgfloat; ?>"
    <?php endif; ?>   
    width="<?php echo $this->plugin->params->get('article_images_intro_width', 200)?>"
    height="<?php echo $this->plugin->params->get('article_images_intro_height', 200)?>"
/>

Актуальная на этот момент версия: 2.3.5.pro

Кстати, очень понравилась возможность в Pro версии самостоятельно выбирать в шаблоне, где именно вывести миниатюру. Можно вывести не только во вступительном тексте.
Возможно, будет интересно: Интеграция с Ozon
*

al707

  • Осваиваюсь на форуме
  • 42
  • 2 / 0
  • Тамиров Александр
Здравствуйте. Как сделать, чтобы миниатюры создавались в той же папке, что и исходное изображение. Что-то не пойму. Игры с настройками директории для миниатюр и созданием структуры каталогов не помогают, т. е. , например, если в качестве директории миниатюр задать "images", то произойдет дублирование всей структуры каталогов images/images/.... Если задать /, то путь с трех слэшев начинается.
Т. е. играя с "./" или "../" я могу добиться создания миниатюр в той же папке, что и исходник, и даже в браузере они отображаются, но пути получаются дурные, типа src="/../images/..." мне не очень такое нравится..
« Последнее редактирование: 14.10.2018, 19:51:02 от al707 »
*

ОлегБеларусь

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Приветствую! А почему при клике на фотографию не загружается окно слайда? При клике перезагружается страница, потом при повторном клике выходит слайд с изображением. Как сделать чтоб сразу при клике открывалась картинка?
*

Old Daemon

  • Захожу иногда
  • 119
  • 4 / 0
Приветствую! А почему при клике на фотографию не загружается окно слайда? При клике перезагружается страница, потом при повторном клике выходит слайд с изображением. Как сделать чтоб сразу при клике открывалась картинка?
Может конфликт JavaScript ? Не пробовали другой тип попап окна выбрать в настройках ?
*

ОлегБеларусь

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Может конфликт JavaScript ? Не пробовали другой тип попап окна выбрать в настройках ?
Разобрался
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Как прикрутить Fancybox  в качестве дополнительного эффекта для всплывающих фото? Хочется сделать грамотно, а не корежить код. ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин "Русская типографика"

Автор Physicist

Ответов: 261
Просмотров: 156145
Последний ответ 13.03.2025, 20:06:50
от Olg
Owl Сarousel Images module for Joomla

Автор Muggs

Ответов: 0
Просмотров: 1291
Последний ответ 30.08.2024, 17:34:06
от Muggs
Мастерю плагин для админки - оплата налом или по карте при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 1281
Последний ответ 27.08.2024, 15:39:37
от kkmspb
News Calendar Joomla 3.0 - html5 - Rus

Автор leo78

Ответов: 27
Просмотров: 15041
Последний ответ 27.06.2024, 11:15:49
от Леон
Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 101896
Последний ответ 20.04.2024, 21:10:33
от Beer