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

bender_523

  • Новичок
  • 4
  • 0 / 0
у меня тоже не отображались русские символы.
проблему решил перекодировкой файла AJAX.php в utf-8
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Все прочитал, все попробовал вроде сделать - не обновляется количество товаров в мини корзине динамически. ТОлько после обновления страницы.
Пробовал отключать все модули и тд и тп, но затык не в конфликте модулей.
Фаербаг пишет мне ошибку
Код
live_site is not defined
new Ajax(live_site + '/index2.php', {
в script_11.js (строка 133).
В файле конфигурации Joomla live_site прописано. Остальные модули и компоненты этот параметр видят. Где то может быть этому модулю принудительно нужно прописать или как?:) Подскажите кто вкурсе.
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Вобщем, не уверен, что на 100% верно сделал, но проблему решил сам.
В /modules/mod_ice_vmcart/assets/script_11.js строка 133
принудительно указываем live_site
было:
Код
new Ajax(live_site + '/index2.php', {
стало:
Код
new Ajax('http://адрес_вашего_сайта' + '/index2.php', {
адрес обязательно берем в одиночные ковычки, иначе будет синтаксическая ошибка.
У меня вобщем все заработало, как и должно.
*

grach-87

  • Новичок
  • 4
  • 0 / 0
у меня тоже не отображались русские символы.
проблему решил перекодировкой файла AJAX.php в utf-8
А где этот файл находится то?)
*

bender_523

  • Новичок
  • 4
  • 0 / 0
А где этот файл находится то?)
в папке с модулем. точно не помню, да и посмотреть нет возможночти.
*

Jane35

  • Новичок
  • 3
  • 0 / 0
Уважаемые посетители и обитатели форума! Помогите разобраться. Очень понравился этот модуль..но возникла проблема с установкой(((

В инструкции по установке говорится - Файл minicart.tpl.php скопируйте  в папку ...componentes/com_virtuemart/themes/default/templates/common/

Но, у меня по адресу: components\com_virtuemart вообще нет папки themes, как быть подскажите.

Что делать ума не приложу...  может у меня VirtueMart 2.0.12 установился с глюками

Ответ уже не требуется... Проблема оказывается была в том что корзина эта подходит только для VirtueMart 1.1.9 и на VirtueMart 2.0.12 она не встанет. Хоть бы написал кто об этом в начале темы(!), в помощь новичкам.

Хорошо, что Nikoz подсказал в чем проблема была. Спасибище ему за это огромное!
« Последнее редактирование: 15.10.2012, 03:07:56 от Jane35 »
*

roscostreet

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
ребята помогите пожалуйста, установил модуль mod_ice_vm_cart_v2.5.1 на virt 2.0.18 правил в default.php отображение надписей на самом модуле, типа открыть, закрыть, сколько товаров, но вот проблема, при добавлении товара в корзину все становится опять на английском и при нажатии на кнопку Show Cart кидает на страницу 404 , все нормально становится только при обновлении страницы, в чем может быть проблема и как ее решить если знаете? Уже все перерыл, ни один час сижу.
Заранее спасибо!
*

GROM33

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Здравствуйте. Может кто подскажет, что делать? Проблема такая. При нажатии кнопки купить, экран затемняется и выскакивает белая страница. Товар в корзину не добавляется. Когда отключу Use AJAX to add, update or delete products from the cart? Все работает, но переход в корзину не хотелось бы иметь. Раньше работало все как хотелось. Сайт восстановил из бекапа и вот такая проблемка образовалась. Помогите
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Здравствуйте.
Подобный вопрос уже звучал в этой теме http://joomlaforum.ru/index.php/topic,128600.msg816170.html#msg816170, но ответа в ней я не нашел. Извиняюсь, но я повторюсь.
Модуль прикольный, но функция расчета координат выпадения - явно глючная. Товар добавляется в корзину, но при клике на нее окно с товаром не появляется. Через FireBug выдает ошибку
Код
TypeError: $(...).getCoordinates is not a function
error source line:
var cartvalue = $("ice_cart").getCoordinates();

нашел функцию, а исправить мозгов не хватило.
Кто понимает в Джаваскрипте, подскажите пожалуйста, что можно поменять:

строка 37, script.js :
Код
$(window).addEvent('domready', function(){
var el = $("cart-panel");
var cartvalue = $("ice_cart").getCoordinates();
$("ice_cart").inject(document.body,"bottom");
$("ice_cart").setStyles({
left:cartvalue.left,
top: cartvalue.top+$('cart-button').offsetHeight.toInt()
});


$("cart_overlay").inject(document.body,"bottom");
var el = $("cart-panel");
el.setStyle('height',0);
el.addClass('ice-hide');
el.setStyle("visibility","visible");
var maxHeight = parseInt(el.getElement('.ice-content').getCoordinates().height);
if( $defined($('cart-button')) ){
$('cart-button').addEvent('click', function(){
IceSliderCart();
return false;
} );
}
} );
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
У вас или конфликт скриптов, или наоборот, какой -то скрипт недогрузился, или что-то не то с функцией getCoordinates(). ТО что Вы нашли - это вызов её. Но внутри самой функции какие-то проблемы.
Ищите function getCoordinates, и помедитируйте над ней..
« Последнее редактирование: 20.05.2014, 15:22:23 от mark1 »
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Похоже на конфликт, но теперь не могу определить с каким именно.
Как у Вас получилось решить эту проблему?
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
Похоже на конфликт, но теперь не могу определить с каким именно.
Как у Вас получилось решить эту проблему?
никак, у меня никогда не было ни этой проблемы, ни этого модуля вообще. Но если приведёте / кинете в личку адрес сайта - могу глянуть одним глазом. По крайней мере, может, причину найду, если не решение.
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Не работает java вообще, не раскрывает не обновляетне переходит в корзину, с чем может быть проблема кто подскажет?
FireBug показывает

Код
TypeError: $(...).addEvent is not a function


$(window).addEvent('domready', function(){
« Последнее редактирование: 14.06.2014, 20:13:44 от terr »
*

mark1

  • Захожу иногда
  • 394
  • 39 / 2
Выясните разницу между java и javascript. И смотрите, в каком именно файле эта функция, что выдаёт ошибку. Причин может быть десяток, самое частое - конфликт между Mootools и jQuery из-за неверной очередности скриптов
*

serjik

  • Захожу иногда
  • 344
  • 1 / 1
Установил данный модуль, все понравилось, но обнаружил один очень большой косяк: когда кладешь товар в корзину и потом нажав Развернуть список нажимаешь кнопку Показать корзину то переходишь на пустую корзину в протокол https, тоесть ссылка из корзины должна быть нормальной вида  http://site.ru/korzina, а она почему то https://site.ru/korzina. Если переходить в корзину просто по ссылке в меню то все нормально. Почему так?
p/s ssl на сайте отключен, хостер уверяет что Такая переадресация может быть только в файлах, бд или .htaccess файле. Других вариантов нет. Проверил все три момента, нигде нет никакой переадресации. Выходит она только для ссылки корзины которая идет через этот модуль, тоесть косяк в самом модуле!
« Последнее редактирование: 03.08.2015, 16:16:06 от serjik »
*

Super_Panda

  • Новичок
  • 2
  • 0 / 0
Ссылка на скачивание не работает, может кто-нибудь перезалить?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор bork

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

Автор 4kict

Ответов: 25
Просмотров: 10381
Последний ответ 14.01.2021, 00:09:53
от gartes
Сумма корзины на главной странице

Автор andreylc

Ответов: 6
Просмотров: 1032
Последний ответ 30.05.2018, 11:13:43
от andreylc
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 28032
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Хаки для убыстрения VirtueMart (уменьшение запросов и т.п.)

Автор yadrinez

Ответов: 197
Просмотров: 81436
Последний ответ 05.02.2016, 21:53:34
от flyingspook