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

IvanSmirnov

  • Захожу иногда
  • 59
  • 0 / 0
К модулю претензий нет! Такой модуль я неделю искал! И за него огромное спасибо!

Itemid действительно меняется с 3 на 1. Как это поправить ?



Помогите с этим вопросом, пожалуйста.

Не могу найти ответа.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Создайте соответствующую тему пжлста. Как решить - не знамо
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

IvanSmirnov

  • Захожу иногда
  • 59
  • 0 / 0
Модуль неправильно отображает категорию товара, если в ее названии есть кавычки (может и другие знаки). Если категория называется O'Jump, то модуль выводит O /'Jump

Как это поправить ?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Да это тупой VirtueMart со слешкой в базу сохраняет. Пиши O`Jump  )
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Цитировать
Добавляю картинки к подкатегориям по этому варианту:
Цитировать
2) Накидываем в папку images свои иконки, скажем c_1.png, c_2.png и тд... добавляем в case: 'li' следующий код:
Код

            $icon = 'c_'.$node->attributes('id').'.png';
            if ( file_exists(JPATH_SITE.DS.'images'.DS.$icon) ) {
               $node->addAttribute('style', "background-image:"."url('/images/$icon')");
            }

Не забываем добавить в CSS .menu li{background-repeat: no-repeat}

сделал картинки, положил в /images/
картинки названы согласно id подкатегорий..
код вставлял в tmpl/default.php

ничего не меняется... что-не так делаю?

помогите пожалуйста. не понимаю что не так.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Картинки надо называть c_1.png, c_2.png.
Цитировать
код вставлял в tmpl/default.php
А при этом в настройках выбран шаблон модуля Default?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
да
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
попробуйте вывести отладочную информфацию:
            $icon = 'c_'.$node->attributes('id').'.png';
            echo 'check ', JPATH_SITE.DS.'images'.DS.$icon, '<br />';
            if ( file_exists(JPATH_SITE.DS.'images'.DS.$icon) ) {
               $node->addAttribute('style', "background-image:"."url('/images/$icon')");
               echo 'image ', '/images/$icon', ' added!<br />'
            }

не включен ли кеш модуля?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
при загрузке страницы пишет:
Цитировать
Parse error: syntax error, unexpected '}', expecting ',' or ';' in Z:\home\test1.ru\www\modules\mod_virtuemart_categories\tmpl\default.php on line 25

Код
				break;
case 'li':
            $icon = 'c_'.$node->attributes('id').'.png';
echo 'check ', JPATH_SITE.DS.'images'.DS.$icon, '<br />';
if ( file_exists(JPATH_SITE.DS.'images'.DS.$icon) ) {
23 $node->addAttribute('style', "background-image:"."url('/images/$icon')");
24 echo 'image ', '/images/$icon', ' added!<br />'
25 }
26 // set parent class
27 if (isset($node->ul) && $node->ul) {
$node->addAttribute('class', 'parent');
}
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
echo 'image ', '/images/$icon', ' added!<br />';
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Vujko

  • Осваиваюсь на форуме
  • 25
  • 4 / 1
danik.html

а когда планируете выпустить финал версии 2.0 ?
то есть не тестовую
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Собсно я ждал кучи ошибок в работе модуля, но не тут то было... После пары правок выложу "final" версию, "для галочки", и наверно закину в JED. Еще ждал что будете писать исправления по переводу на инглишь - но и тут я ошибся ((...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Спасибо большое!
разобрался, заработало, но не то чтобы так как надо.  
нужно чтобы было не фоном, а типа как в шаблоне mootree сбоку слева, такое возможно?
и как убрать элементы списка, точки там и все такое?
и еще, где шрифт категорий в меню увеличить можно? через изменения сss в шаблоне не получается, т.е. елемент списка (точка например) увеличивается, а сам текст списка остается прежним..
« Последнее редактирование: 30.08.2010, 15:24:00 от kobru »
*

Vujko

  • Осваиваюсь на форуме
  • 25
  • 4 / 1
спасибо за ответ)
значит буду ждать  "final" и попробую поставить и себе на магаз! :)
потому как в категориях третьего уровня черт ногу сломит :/
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
@kobru: в mootree это тоже фоновые изображения. Нужно просто настроить в CSS все. Например так:
.menu li{
    background-repeat: no-repeat;
    padding-left: 50px; /* ширина отсупа = ширине иконки */
    padding-top: 5px;
    padding-bottom: 5px;
    list-style: none; /* убираем буллеты списка */
    font-size: 14px;
}
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Спасибо за модуль. Пожелание: назови его по другому, отлично от стандартного модуля. У многих эти модули уже настроены и удалять их ради установки этого для тестирования многим просто стремно.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
вобщето стандартный называется mod_product_categories , что не одно и то же ))
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
еще раз спасибо!
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
а где прописать чтобы картинка в высоту была 50px, и не обрезалась?
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
В CSS все прописывается. Только не высота картинки, а высота тега li(height или min-height чтоб учесть возможность переноса)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Vujko

  • Осваиваюсь на форуме
  • 25
  • 4 / 1
danik.html
а вы могли бы сделать пошаговый мануал по установке вашего мода
и настройке его фич

для удобства пользователей так сказать :)
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
вобщето стандартный называется mod_product_categories , что не одно и то же ))
При установке этот называется так же, что одно и то же ))
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Спасибо! принял понял)
*

kobru

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
а как добавить название категории к списку подкатегорий, например как в шаблоне mootree и так же как на списке подкатегорий добавить картинку сбоку?
*

Kocmoc

  • Осваиваюсь на форуме
  • 32
  • 2 / 0
Здравствуйте. Классный модуль. Только вот есть проблема. при длинном списке получается разрыв. Шаблон модуля Mootree. Шаблон сайта It thestore2. Суффикс класса модуля вставил. Помогите новичку.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Kocmoc, может быть  список не влезает по ширине в ваш сайдбар? К сожалению переноса длинных строк-названий не осуществить. И размер отсупа каждого подуровня тож фиксирован. Так что придется расширять сайдбар в вашем шаблоне
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Kocmoc

  • Осваиваюсь на форуме
  • 32
  • 2 / 0
Спасибо, что откликнулись на мою проблему. По ширине у меня все входит. На всякий случай увеличивал ширину, но не помогло(( Вот как модуль выглядит без добавления суффикса класса модуля.
« Последнее редактирование: 05.09.2010, 07:19:14 от Kocmoc »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Так а что тут не так? :)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Kocmoc

  • Осваиваюсь на форуме
  • 32
  • 2 / 0
Тут то все классно))) Но хочется чтоб было в едином стиле. как и меню сверху.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Ну если шаблон позволяет сделать такой же стиль для любого модуля- почемуб и нет? Единственное, не уверен что иконки будут хорошо смотреться на фоне черного. В таком случае можно подредактировать изображение содержащее иконки дерева.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

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

Автор aleks_yug

Ответов: 97
Просмотров: 28013
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Модуль Cherry Picker for VirtueMart

Автор flintstone

Ответов: 42
Просмотров: 26623
Последний ответ 04.01.2016, 21:25:50
от gleb22
Добавить модуль в товар

Автор Tokyo

Ответов: 2
Просмотров: 2886
Последний ответ 11.05.2015, 20:43:32
от tierex
Модуль VirtueMart для фильтра товаров по категориям!

Автор maxmur

Ответов: 104
Просмотров: 52583
Последний ответ 08.08.2014, 11:47:37
от Хусен