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

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
На Я.браузере все ок, еще вчера смотрела и сейчас норм.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
У меня нормально сайт по https отображается. Сам пользуюсь сертификатами от Let`s Encrypt и не встречал ещё браузеров, где бы они считались не доверенными. effrit, если не секрет, с какого браузера заходите?
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
Тогда действительно странно.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
сейчас посмотрел - все норм стало, при заходе через защищенное соединение переходы происходят без потери протокола.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Значит ты по ipV6 работаешь, а мы, устаревшие по четверке :)
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Значит ты по ipV6 работаешь, а мы, устаревшие по четверке :)
Кстати да видел рекомендацию отключить IP v6 при HTTPS
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Аркадий, вопрос на мульён: не сколько энергозатратно добавить визуальный редактор к многострочному тексту? это же по факту html-поле, как я понимаю.
т.е. типа галки бы в настройках поля, чтобы можно было создавать его с визивигом и без.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Да чет даже не знаю, с виду совсем просто, но столько уже подводных камней видел с этими редакторами...
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
камней бояться- в омут не нырять! ))
небольшой багтрекинг:
у поля "минигалерея" дефолтный шаблон не цепляет jquery.
заменил
Код
JHtml::_('behavior.framework');
на
JHtml::_('jquery.framework');
и заработало
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
еще странность: если в поле "Строка" вбить 0 (ноль), то поле выведет пустоту.
при этом любую другую цифру/букву поле отображает. такое ощущение, что где-то получается значение поля и идет проверка на "true", которая нулем не проходится.

ну и, если будешь файлы править, в типе полей опечатка "большое тесктовое поле"
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
потихоньку ковыряю каталожек.
выяснил, что галерии генерируют тумбы в 100% качестве. выставил в 70, ибо нефиг )).
в шаблоне нужной галереи надо добавить параметр
Код
	$options = array('quality' => '70'); //effrit выставляем качество тумбиналей
        $thumbnail->toFile( $thumbnail_dest, $nativeProps->type, $options);

а к имени файла превьюшки дописываю имя папки-родителя, для уникальности.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
еще странность: если в поле "Строка" вбить 0 (ноль), то поле выведет пустоту.
при этом любую другую цифру/букву поле отображает. такое ощущение, что где-то получается значение поля и идет проверка на "true", которая нулем не проходится.

ну и, если будешь файлы править, в типе полей опечатка "большое тесктовое поле"
Странно, вроде отвечал на этот вопрос, но ответа не вижу. Поле проверяется на !empty(), а ноль это так-же пусто как и '' или false.
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Доброго времени суток Arkadiy,
Версии PHP 7 в админке при открытии материала для редактирования плагин выдает следующее

Код
Notice: Array to string conversion in ***/plugins/system/minicck/minicck.php on line 350

Notice: Array to string conversion in ***/plugins/system/minicck/minicck.php on line 350

Notice: Array to string conversion in ***/plugins/system/minicck/minicck.php on line 350

Notice: Array to string conversion in ***/plugins/system/minicck/minicck.php on line 350

Notice: Array to string conversion in ***/plugins/system/minicck/minicck.php on line 350

Notice: Array to string conversion in ***/plugins/system/minicck/minicck.php on line 350

Notice: Array to string conversion in ***/plugins/system/minicck/minicck.php on line 350

...
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
а все-таки неправильно по нулю не выводить поле :)
надо проверку на заполненность делать, а не на значение.
сейчас вот каталожек делаю и вместо 0 приходится 00 вписывать.
можно же делать isset + длинна строки. ну или ещё как-то, но не просто true, которое на ноле запинается :)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
а все-таки неправильно по нулю не выводить поле :)
надо проверку на заполненность делать, а не на значение.
сейчас вот каталожек делаю и вместо 0 приходится 00 вписывать.
можно же делать isset + длинна строки. ну или ещё как-то, но не просто true, которое на ноле запинается :)
Проблемы у многих будут, isset смотрит только определенность поля, если оно определено, то выводит, а там может быть пусто, я проверяю функцией empty(), к сожалению ей без разницы пустая строка, null, false, 0, все это пусто.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
дык isset && значение !="" или mb_strlen>0 дадут нужные результат.
просто 0 - это же вполне валидный символ для текстового поля, так что некорректно его пустотой считать :)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

Prevergenec

  • Захожу иногда
  • 76
  • 0 / 0
Подскажите пожалуйста, почему не выводятся картинки?
http://nogotki.cdwd.ru/service-price.html где, 111 и 222 это описания картинок
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
вы шаблон вывода поля картинок меняли, по ходу.
там в ссылке есть строка
http://nogotki.cdwd.ru/plugins/system/minicck/fields/minigallery/classes/phpthumb/phpThumb.php?src=/images/service_2.png&w=70&h=70&zc=1
которая генерирует картинку.
так вот она должна быть не значением href тега <a>, a значением src тега img.
*

Prevergenec

  • Захожу иногда
  • 76
  • 0 / 0
вы шаблон вывода поля картинок меняли, по ходу.
там в ссылке есть строка
http://nogotki.cdwd.ru/plugins/system/minicck/fields/minigallery/classes/phpthumb/phpThumb.php?src=/images/service_2.png&w=70&h=70&zc=1
которая генерирует картинку.
так вот она должна быть не значением href тега <a>, a значением src тега img.
вобще ничего не трогал, ибо не шарю .... попробую тогда поставить другую версию, может какую кривую скачал
*

Prevergenec

  • Захожу иногда
  • 76
  • 0 / 0
Скачал свежую версию, установил, тоже самое - http://nogotki.cdwd.ru/service-price.html  >:(
*

Prevergenec

  • Захожу иногда
  • 76
  • 0 / 0
можно поменять в настройках поля шаблон вывода тогда, там ещё 2 есть
точно, спасибо тебе милый человек ;-)
*

Xammax

  • Новичок
  • 7
  • 0 / 0
j 3.6.5
Сохранить не удалось из-за ошибки: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IGNORE TABLE `#__minicck` ADD `height` varchar(250) NOT NULL' at line 1 SQL=ALTER IGNORE TABLE `#__minicck` ADD `height` varchar(250) NOT NULL
При сохранение плагина появилась такая ошибка
В материале поля не появились, при сохранении материала тип контента дополнительных полей не сохраняется
В базе в таблице minicck данных нет, не записываются

В чём может быть дело?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Умный поиск Joomla! 4.3.4 Stable не ищет в содержимом SP Page Builder 5.0.8

Автор dmitrypro

Ответов: 4
Просмотров: 2790
Последний ответ 17.10.2023, 13:59:18
от dmitrypro
Поиск аналогичного конструктора контента

Автор TRIGUN

Ответов: 0
Просмотров: 1526
Последний ответ 24.07.2017, 02:12:13
от TRIGUN
MiniCCK - вывод полей в модулях

Автор Nikolay Blinov

Ответов: 1
Просмотров: 1828
Последний ответ 28.06.2016, 02:31:25
от Nikolay Blinov
Как сделать каталог в Joomla?

Автор tao2en

Ответов: 8
Просмотров: 3921
Последний ответ 11.03.2016, 11:14:22
от FitMe
Ребят кто сможет сделать модуль для Joomla 3 с функционалом описанным ниже

Автор foxkirov

Ответов: 4
Просмотров: 1851
Последний ответ 14.01.2016, 21:39:41
от foxkirov