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

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Приветствую всех
Столкнулся с проблемой, подтолкните в нужном направлении.
Словами может получиться как-то коряво, поэтому для лучшего пояснения проблемы прицепил две иллюстрации.

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

Дополнительно к иллюстрациям даю ссылки:
Так должно быть: http://www.папка.com.ua/папки-для-офиса/item051lполноцвет-папка-регистратор-полноцветная-70мм-а4-металлическая-окантовка-полипропиленовое-покрытие-pp.html

Тык быть не должно: http://www.папка.com.ua/доски-для-записей-для-рисования-сухостираемые/item070203m-лицензия-маша-и-медведь-доска-для-записей-картонная-сухостираемая-а3-маркер-салфетка-детские-дизайны.html

Подскажите, где мог напортачить и при возможности, решение вопроса  ^-^.
Премного благодарен за участие.
« Последнее редактирование: 27.10.2013, 00:17:58 от kefla »
*

nevigen

  • Moderator
  • 10450
  • 863 / 25
  • http://n*****n.com
Код
#list_product_image_thumb .jshop_img_thumb {
max-width: 125px;
max-height: 125px;
}
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Nevigen
Благодарю Вас  ^-^ за помощь
Как все оказывается просто бывает...

Поколдовал с размерами и совсем все вроде неплохо получилось
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Еще один небольшой вопрос в том же ключе
В некоторых товарах не получается убрать громадный пустой участок, картинку прилагаю
Сылка вот: http://папка.com.ua/папки-для-офиса/apx051-rt-папка-регистратор-крафт-покрытие131017121553.html
*

nevigen

  • Moderator
  • 10450
  • 863 / 25
  • http://n*****n.com
ну вопросы верстки и стилизации
пересмотриет подходы. от края до края уже не используют шаблоны.
стараются делать отступы по бокам
а у вас еще и прокрутка... жесть
где то задана ширина жестко

+ в сопутствующих проблема с кодировкой.
в общем не гламурненько совсем.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
проблема в том, что отображение некорректно не во всех товарах, а только в некоторых.
В частности в том, на который дал ссылку.
А почему так, понять не получется

По поводу кодировки в сопутствующих знаю давно, но руки туда пока не доходят
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
В частности в том, на который дал ссылку.
найдите 3 товара, в которых так, а потом 3 товара, в которых не так. и посмотрите внимательно, что есть у первых, и чего нет у вторых
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Попробовал по новой создать товары, в которых обнаруживаются описанные выше проблемы отображения.
Проблемы пропадают!
Видно они связаны вовсе не с шаблоном, а с какими-то нюансами копирования, т.к. создавались проблемные товары не по-новой, а на базе уже существовавших карточек.

Считаю вопрос исчерпанным, проблему решу пересозданием продуктов  ^-^
Ошибся, признаю свою самонадеянность, вопрос в посте ниже
« Последнее редактирование: 27.10.2013, 00:04:02 от kefla »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Считаю вопрос исчерпанным, проблему решу пересозданием продуктов

не решите. вернее, решите, но на время :)
добавьте вновь созданному товару 4 сопутствующих
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
 ^-^
вот как раз хотел сказать об этом.
Сопутствующие товары как раз видать и тянут шаблон
Вот если бы сопутствующие товары размещались не рядом один с другим, а один под одним, тогда и проблемы бы не было.
А так они отображаются в том же формате, что и продукты на фронте и потому создают проблему...

Можно ли сделать их отображение в один под одним? Подскажите  ^-^
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну у вас же там таблица таблицей погоняет... причем по-моему в базовом шаблоне такого нет, как у вас - по 3 уровня вложенных таблиц. надо на дивы переводить, тогда можно будет CSS -ом менять. с таблицами тяжело верстать такие вещи. таблицы хороши там где они нужны
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

kefla

  • Захожу иногда
  • 87
  • 4 / 0
  • Учусь, учусь, все время учусь, а края не видно...
Блин, какой же я-таки темный  ;D
Все ведь так просто решается, заданием в настройках количества сопутствующих товаров в ряду.
Ставлю "1" и все, никто никуда не ползет и не лезет, а товары размещаются один под одним.

Теперь точно РЕШЕНО  ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод 3-х первых картинок в списке товаров категории

Автор rudoy24

Ответов: 30
Просмотров: 11988
Последний ответ 19.07.2024, 11:41:28
от juleczka
Вкладки (табы) в описании товара

Автор Sergio

Ответов: 254
Просмотров: 57040
Последний ответ 12.10.2023, 12:20:59
от dron
[Решено] Увеличение выбора покупаемых товаров + -

Автор Aspik

Ответов: 216
Просмотров: 48458
Последний ответ 02.08.2023, 21:31:25
от kit2m2
Где посмотреть варианты карточки товара

Автор itbc

Ответов: 6
Просмотров: 3031
Последний ответ 31.10.2022, 10:05:51
от nevigen
Основная картинка в карточке товара на весь экран

Автор Mister Shadow

Ответов: 1
Просмотров: 2605
Последний ответ 08.07.2022, 22:16:27
от nevigen