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

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
поставил модуль mod)up в другую позицию отключил в нем подключение джквери, терь нормуль работает и он и поиск. Странно всё таки, каким образом оба модуля работали раньше  :o ;D
А не мог прицепить еще что-то (модуль какой-нибудь) и благополучно забыть об этом? Чудеса то бывают, но не в этом случае...
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
неее, хоть я и постоянно экспериментирую но модулей пока больше не вешаю на сайте, вот плагины да, но сегодня полдня убил на то чтобы отключать плагины дабы узнать где конфликт, а потом заметил только что второй раз джквери грузится, один из модуля mod_up второй из модуля поиска, причем версии разные. Вот и удивляюсь модуль "вверх страница" стоит у меня уже долго, как оба модуля работали раньше, ну да ладно, главное заработало  ^-^
З.Ы. к чему это я, у тех у кого не работает поиск, проделав всё то что необходимо (смотреть в теме) смотрите что грузится и как в плане библиотек.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Возможно ты менял модули местами, из-за этого может поменяться порядок вывода библиотек, из-за которого более старая версия пошла последней, а последняя загружаемая библиотека как раз и работает.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
да вот как раз таки не менял, модуль mod_up стоит у меня больше года, а модуль поиска ставил позже, ну наверно с полгода назад, поэтому сначала начал искать проблему в плагинах, потом подумал что конфликт мотулс и квери, ток потом увидел что два раза грузится разные версии квери. Чудеса просто, сейчас опять всё работает  ^-^
*

varg8

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
А можно на виртуе марте сделать вот это: http://www.kama-spb.ru/podbor_avt.php?manid=1  ?
*

varg8

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
вопрос закрыт
« Последнее редактирование: 10.10.2011, 14:38:33 от varg8 »
*

checker

  • Осваиваюсь на форуме
  • 40
  • 1 / 0
как сделать сортировку по product_name на выводе результатов?
ответ найден
Код
$q .= "ORDER BY #__{vm}_product.product_id DESC ";
заменить на
Код
 $q .= "ORDER BY #__{vm}_product.product_name  ";
вся эта радость лежит в vm_ext_search_helper.php который в свою очередь отдыхает в components/com_vm_ext_search_free/files
« Последнее редактирование: 11.10.2011, 04:50:28 от checker »
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Код
Ошибка: MooTools.upgradeLog is not a function
Источник: http://www.bumir.ru/plugins/system/mtupgrade/mootools.js
Строка: 1

Как победить?
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Код
Ошибка: MooTools.upgradeLog is not a function
Источник: http://www.bumir.ru/plugins/system/mtupgrade/mootools.js
Строка: 1
Как победить?
В плагинах отключи System - Mootools Upgrade
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Выключал, ошибку перестает выдавать ну и скрипт не обрабатывает( т.е. не работает как должно
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
причем тут мутулс в этой теме?  ^-^ этот компонент и модуль работает на квери. Если тебе надо с мутулсом справиться смотри какая версия у тебя подключается. Можешь включить этот плагин обратно, только версию глянь, есть 1.12 и 1.2 версия
*

varg8

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
А как сделать так, чтобы основной текст на странице не налезал на модуль? И чтобы заголовок модуля выглядел как все прочие заголовки? мой сайт kama35.ru
*

checker

  • Осваиваюсь на форуме
  • 40
  • 1 / 0
А как сделать так, чтобы основной текст на странице не налезал на модуль? И чтобы заголовок модуля выглядел как все прочие заголовки? мой сайт kama35.ru
firebug + css  - и там экспериментировать :)
а теперь мой вопрос:
немножко не по теме, но я думаю может кому будет интересно решить этот вопрос. И может быть кому нибудь кроме меня пригодится решение.
Вопрос в следующем:
как, используя jquery отрисовать материал с необходимыми модулями?
т.е. по ссылке в меню sitename.net/bla/blla/1 у меня находится статья+модуль мне необходимо отрисовать именно эту статью и тот модуль который к ней прицеплен
ну или хотя бы просто отрисовать статью по её id и модуль по его id
*

Lennier

  • Новичок
  • 2
  • 0 / 0
Сразу скажу спасибо за отличный модуль/компонент
Подскажите, пожалуйста, возникла проблема:
Если в каталоге VM выбрать отдельно производителя, то вылезает ошибка:
Код
Warning: implode() [function.implode]: Invalid arguments passed in .../components/com_vm_ext_search_free/files/unisearch.php on line 221
Warning: Invalid argument supplied for foreach() in .../components/com_vm_ext_search_free/files/unisearch.php on line 231
если закоментировать 221 строчку:
Код
221       if ($mf) $query .= "\n AND product_mf_xref.manufacturer_id IN (". implode(", ", $mf_id).") AND product_type_xref.product_id = product_mf_xref.product_id ";
то все продолжает работать, просто в форме не отслеживается производитель.
В принципе это не критично, но обидно, что не работает то что может.

*

buslle

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Здравствуйте, хочу установить данный поисковик. Проблема в том, что у меня в теме GK MyStore в файле index.php нет таких строк
Код
<jdoc:include type="component" />
Что мне делать?
Кнопка поиск не работает
*

makhmudov.timur

  • Захожу иногда
  • 341
  • 20 / 0
  • Alshanskiy
Здравствуйте, хочу установить данный поисковик. Проблема в том, что у меня в теме GK MyStore в файле index.php нет таких строк
Код
<jdoc:include type="component" />
Что мне делать?
Кнопка поиск не работает
ищите через поик с тотал коммандере эти строки, где то они точно есть
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Искать простым поиском по содержимиму файлов шаблона.
*

buslle

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Спасибо большое, нашла все файлы, заменила и всё работает
*

buslle

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
А ещё вопросик, при поиске выводит три товара на странице. А можно сделать другое количество?
*

Arkadiy

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

makhmudov.timur

  • Захожу иногда
  • 341
  • 20 / 0
  • Alshanskiy
а для версий 1,9 он не подойдет ?
*

Arkadiy

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

Lennier

  • Новичок
  • 2
  • 0 / 0
Подскажите пожалуйста - очень рассчитываю на ответ.
Я так понял, что любое включение jQuery.js вызывает конфликт.
Но проблема в том, что в одном месте он мне необходим.
С jQuery знаком мало.
Подскажите, может есть способ обойти или подключить какую-то конкретную версию (последняя не работает).
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Надо выбрать одну версию с которой будет работать и то и то.
*

makhmudov.timur

  • Захожу иногда
  • 341
  • 20 / 0
  • Alshanskiy
Не пробовал, возможно подойдет.
выходит ошибка при подключении компонента, точнее это модуль выдает. на 5тую строчку. Код не могу ски нуть
*

Arkadiy

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

eclipseggg

  • Захожу иногда
  • 410
  • 32 / 2
ну так посмотришь сайт?
*

DEV

  • Новичок
  • 3
  • 0 / 0
В ветке этот вопрос задавался несколько раз, но я так и не смог решить проблему - не работает кнопка "Поиск".
VM 1.1.9, Joomla 1.5.23, один из шаблонов RT этого года выпуска, сайт в разработке, но уже на хостинге.
Шаблон использует фреймворк "Gantry"
index.php шаблона - каркас (перечень позиций с минимальным количеством данных о них), в который система сама подтягивает все остальное.
Поиском нашел во всех файлах шаблона и фреймворка и заменил <jdoc:include type="component" /> на обрамленный вариант,
но результат не получил  :'(
Модуль работает нормально: выбирает и категории и далее по параметрам типа.
Компонент и модуль сами загружают библиотеку (по крайней мере галки стоят).
Подставляя внаглую в index.php обрамленный код получаю повторение контента на странице в месте установки этого кода,
но в этом дубле как раз выводятся результаты поиска после нажатия кнопки в модуле!
Т.е. по крайней мере компонент работает
Очень сильно подозреваю, что проблема в сложности шаблона (и недостаточности моей квалификации).
Но может кто решил такой вопрос или подскажет в какой стороне еще можно покопать ?

« Последнее редактирование: 11.11.2011, 12:38:39 от DEV »
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Очень сильно подозреваю, что проблема в сложности шаблона (и недостаточности моей квалификации).
Но может кто решил такой вопрос или подскажет в какой стороне еще можно покопать ?
К сожалению, я не знаю шаблон, который Вы использовали, но всегда нужно быть готовым к тому, что если шаблон для сайта сделан не Вами, возможно энное количество конфликтов с разнообразными скриптами, используемыми в нем. Об этом на форуме написанно уже так много, что повторяться не стоит. Могу только еще раз сказать: делаете шаблоны самостоятельно, с учетом тех расширений. которые будут использоваться на сайте. В противном случае придется выискивать проблему, как говорится, вручную (и не факт, что удастся сделать это быстро).

PS, надеюсь Аркадий "простит и поймет" меня правильно (влез не в свое дело...)
PPS, может попробовать поискать на форуме тему, где обсуждались вопросы, связанные с работой Вашего шаблона? Не исключено, что кто-то уже сталкивался с привязкой доп. расширений к нему...
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Видимо что-то еще не нашел. Надо задать вопрос по шаблону в соответствующем разделе, там больше вероятность что ответят.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 23289
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 10376
Последний ответ 14.01.2021, 00:09:53
от gartes
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 53909
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 28014
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Поиск для магазина автозапчастей как на Exist.ru!

Автор zzaj

Ответов: 21
Просмотров: 8831
Последний ответ 11.05.2016, 13:50:02
от Pahom72