Новости 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 Ответов
  • 207086 Просмотров
*

dtokar

  • Захожу иногда
  • 51
  • 1 / 0
при отключении jquery (как я понимаю просто в index.php убивается строчки
<script type="text/javascript" src="<?php echo $templateUrl; ?>/jquery.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>    )
основной контент белеет при нажатии кнопки "поиск"
при выборе категории белеет пункт "выбор производителя",
это на локальном сервере, на хостинг в даннй момент выложить не имею возможности...
ломаю голову..

Вы на локале, поиск не работает если папка сайта не в корне, попробуйте на реальном сайте,если есть такая возможность
*

seoivfr

  • Новичок
  • 1
  • 0 / 0
Доброго времени суток.  ^-^

Так как не смог достучатся по асе - пишу здесь.

Столкнулся со следующими вещами:

1 ) Выбран тип параметра типа товара "выпадающий список" в компоненте отображение - "чекбокс", для товаров выбираем несколько значений параметра. Когда отмечаем значения на сайте то компонент отображает товары в которых хотя бы один параметр совпадает с выбранными (сумирует), а если надо чтобы отображал только те у которых параметры совпадают со всеми отмечеными на сайте (вычитались). Хорошо бы было если б для каждого типа параметра "выпадающий список" в компоненте можно было выбрать "совпадвют все" или "совпадает только один".   !

2) Если выбрать "Выводить результаты поиска стандартными средствами VirtueMart " то в результатах поиска выводит все товары. (или может ето только у меня ?)

Зарание благодарен за понимание важности поста для меня как для юзера и для других потребителей.
« Последнее редактирование: 13.04.2011, 14:05:59 от seoivfr »
*

Sergun42

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Вы на локале, поиск не работает если папка сайта не в корне, попробуйте на реальном сайте,если есть такая возможность
Вечером попробую, ковырялся дальше теперь пишет POST http://localhost/index2.php?task=ajax_mod&no_html=1&task2=typ  jquery1...2min.js (строка 130)
*

Sergun42

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Вы на локале, поиск не работает если папка сайта не в корне, попробуйте на реальном сайте,если есть такая возможность
Действительно, на хостинге при удалении из index.php
<script type="text/javascript" src="<?php echo $templateUrl; ?>/jquery.js"></script>
 <script type="text/javascript">jQuery.noConflict();</script>
 <script type="text/javascript" src="<?php echo $templateUrl; ?>/script.js"></script>
все заработало, в качестве вирт.хостинга юзаю денвер, сайт храниться в X:\home\localhost\www\мой сайт\ куда мне его перенести чтобы работал или где что поменять?
*

dtokar

  • Захожу иногда
  • 51
  • 1 / 0
Действительно, на хостинге при удалении из index.php
<script type="text/javascript" src="<?php echo $templateUrl; ?>/jquery.js"></script>
 <script type="text/javascript">jQuery.noConflict();</script>
 <script type="text/javascript" src="<?php echo $templateUrl; ?>/script.js"></script>
все заработало, в качестве вирт.хостинга юзаю денвер, сайт храниться в X:\home\localhost\www\мой сайт\ куда мне его перенести чтобы работал или где что поменять?


не знаю работает ли он вообще на виртуале, попробуйте установить сайт  в X:\home\localhost\www\  без папки мой сайт, если такое возможно

и поидеи на сайт будете заходдить просто как на локалхост, правдо я такое не пробывал
*

Sergun42

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
запустил на локалке var url = 'http://'+location.hostname+'/мой сайт';

теперь интересует вопрос как сделать, чтобы в выборке товара отразить все характеристики, т.е. в моем случае диаметр, типоразмер, сезон, артикуль.. или как прикрутить стандартный шаблон вывода VirtueMart browse_3 ??
« Последнее редактирование: 14.04.2011, 13:34:36 от Sergun42 »
*

dtokar

  • Захожу иногда
  • 51
  • 1 / 0
чтобы в выборке товара отразить все характеристики

запустил на локалке var url = 'http://'+location.hostname+'/мой сайт';

теперь интересует вопрос как сделать, чтобы в выборке товара отразить все характеристики, т.е. в моем случае диаметр, типоразмер, сезон, артикуль.. или как прикрутить стандартный шаблон вывода VirtueMart browse_3 ??

не понял где и что именно отразить хотите, типы товаров в карточке товара?


или как прикрутить стандартный шаблон вывода VirtueMart browse_3 ??

нет такой возможности, нужно менять цсс в коде вывода результата поиска, под свои нужды,я  менял вручную под свой брауз 3
*

Sergun42

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

dtokar

  • Захожу иногда
  • 51
  • 1 / 0
после выбора параметров и нажатия кнопки пуск, выводиться результат поиска, список товаров, который состоит из картинки, название товара и цены, мне необходимо отобразить еще типы товара там же..

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

rewuxiin

  • Давно я тут
  • 544
  • 38 / 6
Добрый день.

Испробовал все варианты вашего компонента и модуля, от деда и отца.

Всё работоспособно но загвоздка в том, что модуль выдает навыбор только параметры товаров у которых есть цена.

Это както исправляется?
*

dtokar

  • Захожу иногда
  • 51
  • 1 / 0
Добрый день.

Испробовал все варианты вашего компонента и модуля, от деда и отца.

Всё работоспособно но загвоздка в том, что модуль выдает навыбор только параметры товаров у которых есть цена.

Это както исправляется?


На первых страницах этой темы это обсуждалось
*

rewuxiin

  • Давно я тут
  • 544
  • 38 / 6

На первых страницах этой темы это обсуждалось

уже прочитал. спс
*

sanekk

  • Захожу иногда
  • 66
  • 0 / 0
Arkadiy у меня модуль работает нормально, но при переходе в раздел при выборе типов параметров он не обновляет информацию о количестве товаров в выборке, которые подходят по данным параметрам, что не есть гуд, хоть модуль и работает.
Подскажите пожалуйста в чем проблема. заранее спасибо.
www.stovatt.ru
« Последнее редактирование: 01.05.2011, 23:12:34 от sanekk »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
у тебя где-то пропущен префикс mod_, по этому функция не определена.
*

sanekk

  • Захожу иногда
  • 66
  • 0 / 0
у тебя где-то пропущен префикс mod_, по этому функция не определена.

интересно где. я просто код не трогал скачал и установил... а когда тестить начал обнаружил вот такую вот проблемку.
попробую конечно разобраться. ну если знаешь где подскажи пожалуйста.
*

sanekk

  • Захожу иногда
  • 66
  • 0 / 0
интересно где. я просто код не трогал скачал и установил... а когда тестить начал обнаружил вот такую вот проблемку.
попробую конечно разобраться. ну если знаешь где подскажи пожалуйста.

посмотрел в Firefox через FireBug вот что он показал когда заходишь в раздел:

1)Image corrupt or truncated: <unknown>

2)hs is not defined
stovatt.ru()stovatt.ru (строка 35)
[Прерывать на этой ошибке] hs.graphicsDir = '/templates/ja_purity/highslide/graphics/';

а покапавшись в коде нашел только без mod_

function mod_loadProduct( limitstart ){
    var qString = jQuery("#mod_vm_search_form").formSerialize();
    jQuery("#main_search").fadeTo("slow", 0.22);
    jQuery.ajax({
        type: "POST",
        url: url+'/index2.php?task=ajax_mod&task2=load_page&limitstart='+limitstart+'&no_html=1',
        data: qString,
        dataType: 'HTML',
        success: function (data){
            jQuery("#main_search").html(data);
            jQuery("#main_search").fadeTo("slow", 1);
        }
« Последнее редактирование: 20.04.2011, 16:37:58 от sanekk »
*

Sergun42

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Два вопросика:

1.В IE список товаров отображается с корявым шрифтом, вернее как будто цвета нарушаются (как вместо 32бит, 16 цветов). в чем может быть дело?
2. У меня две категории шины и диски, выбираю, например, шины, выбираю производителя относящегося к шинам, поиск, затем хочу выбрать диски, выбираю категорию диски, и типы не выводятся, пока не выберешь производителя...как исправить, так чтобы при смене категорий сбрасывался производитель?
« Последнее редактирование: 21.04.2011, 10:53:41 от Sergun42 »
*

aleks_yug

  • Давно я тут
  • 628
  • 83 / 0
Два вопросика:

1.В IE список товаров отображается с корявым шрифтом, вернее как будто цвета нарушаются (как вместо 32бит, 16 цветов). в чем может быть дело?
2. У меня две категории шины и диски, выбираю, например, шины, выбираю производителя относящегося к шинам, поиск, затем хочу выбрать диски, выбираю категорию диски, и типы не выводятся, пока не выберешь производителя...как исправить, так чтобы при смене категорий сбрасывался производитель?

По первому вопросу:
<div id="main_search" style="background:#FFFFFF">
            <jdoc:include type="component" />
          </div>
Или свой цвет background(а)
*

Sergun42

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
aleks_yug
О, спасибо!

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

sanekk

  • Захожу иногда
  • 66
  • 0 / 0
Arkadiy
у тебя где-то пропущен префикс mod_, по этому функция не определена.
подскажите пож. в чем дело? или в где искать.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Поищи в теме платного компонента, где-то ближе к началу.
*

sanekk

  • Захожу иногда
  • 66
  • 0 / 0
если в этой теме
http://joomlaforum.ru/index.php/topic,111319.0.html
то я что то не нашел там нужной мне инфы.
*

mikerus

  • Новичок
  • 1
  • 0 / 0
Здравствуйте пользуюсь бесплатным AJAX поиском но для поиска по каталогу
автозапчастей нужно его модифицировать, что у меня не получается. В каталоге
много категорий и подкатегорий например

Honda
  -Accord
  -civic
  -Odissey
  -etc

Можно ли сделать чтобы первой был выпадающий список выбор категории (Honda)
и затем за ней выпадающий список подкатегории (Accord, civic, odissey, etc).
И еще возможно ли немного поменять порядок выборки\поиска - сначала
пользователь выбирает тип товара, затем категорию затем подкатегорию и затем
параметры (я пробовал поменять их местами но все равно скрипт обновляется в
порядке в каком он был запрограммирован). Возможно ли все это сделать и
сколько это будет стоить?
*

Arkadiy

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

sanekk

  • Захожу иногда
  • 66
  • 0 / 0
неужели у всех все работает нормально?
может кто то нашел решение данной проблемы?

Arkadiy,
у меня при выборе любого значения из любого списка (Категория/Производители/Тип товара), в качестве результата возвращается "1". При нажатии на кнопку Поиск в элемент id="main_search" тоже выводится "1".
Как это поправить ?
смотрел FireBug'ом - никаких ошибок...


*

VitalikGr

  • Осваиваюсь на форуме
  • 17
  • 4 / 0
Подскажите, а как сделать, чтобы выбирался производитель, и в зависимости от него уже выбиралась категория?
*

Arkadiy

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

VitalikGr

  • Осваиваюсь на форуме
  • 17
  • 4 / 0
А что за нюансы?
*

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
Просмотров: 28012
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Поиск для магазина автозапчастей как на Exist.ru!

Автор zzaj

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