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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #510 : 26.10.2013, 23:38:09 »
Думаю не так все просто.

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #511 : 31.10.2013, 21:07:59 »
Виктор, если можно, добавьте пожалуйста $dispatcher->trigger в JshoppingControllerAddons::saveConfig(). а то появилась необходимость перед сохранением параметров аддона проверять некоторые поля на валидность
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

masterbos

  • Осваиваюсь на форуме
  • 37
  • 1 / 2
  • Ты уверен?
Re: Что нужно доделать в ЖШ
« Ответ #512 : 05.11.2013, 21:49:53 »
очень не дурно было бы добавить возможность присваивать одному товару несколько поставщиков (производителей).

Бывает такая необходимость - товар аналогичный, а производится на разных предприятиях. Дублировать этот же товар для разных поставщиков - не лучшее решение.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Что нужно доделать в ЖШ
« Ответ #513 : 06.11.2013, 09:37:37 »
очень не дурно было бы добавить возможность присваивать одному товару несколько поставщиков (производителей).
Не согласен...
Производитель должен быть один. Если Автомобиль Форд собирают в разных странах - Это не значит что у него разные производители... Производитель один - Форд, а все остальное просто места сборки, которые можно сделать атрибутами.
Не бывает двух производителей. Бывают два поставщика - это Да (для этого есть "Продавцы").
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

mohax

  • Давно я тут
  • 901
  • 66 / 3
Re: Что нужно доделать в ЖШ
« Ответ #514 : 06.11.2013, 09:48:46 »
Не согласен...
Производитель должен быть один. Если Автомобиль Форд собирают в разных странах - Это не значит что у него разные производители... Производитель один - Форд, а все остальное просто места сборки, которые можно сделать атрибутами.
Не бывает двух производителей. Бывают два поставщика - это Да (для этого есть "Продавцы").
Колбаса, сосиски, лампочки, носки... да много всего. другое дело, что цена при этом тоже отличается зачастую. Поэтому вряд ли имеет смысл внедрять для этого отдельный функционал. Можно на базе существующего реализовывать.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #515 : 06.11.2013, 11:34:27 »
Цитировать
другое дело, что цена при этом тоже отличается зачастую
мало того, как правило даже если есть 2 абсолютно идентичных с точки зрения внешнего вида товара производителей А и Б, клиенту может быть важно купить товар именно производителя Б (по разным причинам, например, уже брал ранее, посоветовали, и т.д.). А каким образом у клиента получится это сделать, если товару одновременно назначено 2 или более?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Что нужно доделать в ЖШ
« Ответ #516 : 06.11.2013, 12:30:47 »
возможность присваивать одному товару несколько поставщиков (производителей).

Дело в том, что производитель и поставщик далеко не всегда одно и тоже. Если берёте товар напрямую у производителя, то да... но обычно между производителем и магазином может быть поставщик (перекупщик) - и не один. Если и делать разных, то поставщиков, а не производителей.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Что нужно доделать в ЖШ
« Ответ #517 : 06.11.2013, 12:42:33 »
Добавьте в модули выбор альтернативного макета.
Создание сайтов, шаблонов, помощь в решении проблем.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Что нужно доделать в ЖШ
« Ответ #518 : 06.11.2013, 22:09:09 »
Добавьте в модули выбор альтернативного макета.
Расскажите поподробнее.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Что нужно доделать в ЖШ
« Ответ #519 : 06.11.2013, 22:28:09 »
стандартная же фича. пример любой стандартный модуль и эта статья
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Что нужно доделать в ЖШ
« Ответ #520 : 06.11.2013, 22:36:42 »
Расскажите поподробнее.
Ну, в админке модулей отсутствует поле выбора альтернативного макета.
Я в XML файл добавлял поле, а потом правил основной файл, чтоб они выбирались. Юзал label_products, но и так, выборочно глянул несколько, тоже не нашёл...
Joomla 3, ЖШ 4
Создание сайтов, шаблонов, помощь в решении проблем.
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Что нужно доделать в ЖШ
« Ответ #521 : 06.11.2013, 23:16:54 »
стандартная же фича. пример любой стандартный модуль и эта статья

Фича стандартная... но модули ЖШ не поддерживают альтернативных макетов.
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Что нужно доделать в ЖШ
« Ответ #522 : 07.11.2013, 01:00:55 »
я в курсе что не поддерживают - ни макеты, ни кеш, ни CSS суффикс
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Re: Что нужно доделать в ЖШ
« Ответ #523 : 10.11.2013, 21:40:40 »
Просьба рассмотреть возможность добавить привязку атрибута к товару определенного id. Т.е., под опцией привязки атрибута к категории, добавить поле для ввода id товара, к которому данный атрибут будет применен. Если будет возможность ввести несколько id через запятую, будет вообще отлично.
« Последнее редактирование: 10.11.2013, 22:39:43 от intcorp »
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Что нужно доделать в ЖШ
« Ответ #524 : 10.11.2013, 22:09:37 »
Просьба рассмотреть возможность добавить привязку атрибута к товару

http://www.webdesigner-profi.de/joomla-webdesign/shop/addons/sna.html?lang=en - кажется именно то, что вам нужно. Добавляет атрибут к товару.
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Re: Что нужно доделать в ЖШ
« Ответ #525 : 10.11.2013, 22:20:31 »
http://www.webdesigner-profi.de/joomla-webdesign/shop/addons/sna.html?lang=en - кажется именно то, что вам нужно. Добавляет атрибут к товару.
Нет, это абсолютно не то.
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Что нужно доделать в ЖШ
« Ответ #526 : 10.11.2013, 22:29:15 »
Ну не знаю... я у Виктора спрашивал, что за расширение такое, он сказал: http://joomlaforum.ru/index.php/topic,215421.msg1323218.html#msg1323218
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Re: Что нужно доделать в ЖШ
« Ответ #527 : 13.11.2013, 14:14:57 »
http://www.webdesigner-profi.de/joomla-webdesign/shop/addons/sna.html?lang=en - кажется именно то, что вам нужно. Добавляет атрибут к товару.
Это решение подойдет в случае, если надо указать дополнительную цену, к примеру, за установку/настройку покупаемого товара.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #528 : 13.11.2013, 17:45:03 »
ну может харош обсуждать в "Что доделать.." коммерческие расширения ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Что нужно доделать в ЖШ
« Ответ #529 : 16.11.2013, 15:17:50 »
Добавить кроме даты еще и время в отзывы.
В таблице `#__jshopping_products_reviews` поле time имеет формат DATE.
Сделайте DATETIME, а кому надо время тот найдет как его вывести в шаблоне
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #530 : 16.11.2013, 15:31:01 »
+1

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #531 : 23.11.2013, 18:46:56 »
Виктор, если можно, в JshoppingControllerProduct::getfile() после $file->load($id); что нибудь типа
Код
$dispatcher->trigger('onAfterLoadProductFile', array(&$file, &$order));
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Re: Что нужно доделать в ЖШ
« Ответ #532 : 01.12.2013, 14:32:42 »
Хотелось бы иметь возможность создавать пункт меню для вывода списка всех отзывов к товарам: заголовок товара в виде ссылки на товар, картинка-привью товара, текст отзыва с возможностью задавать кол-во символов. Предусмотреть возможность стандартного фильтра как в списке товаров и пагинация.
*

Ro_Fro

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Что нужно доделать в ЖШ
« Ответ #533 : 01.12.2013, 23:54:28 »
Сделать так что бы при нажатии на логотип производителя в карточке товара открывался не весь список товаров производителя, а список товаров данной категории этого производителя.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #534 : 02.12.2013, 10:11:57 »
2 Ро-Фро...
Наверное не стоит втягивать всех в Ваши индивидуальные потребности.
Тут обсуждаются универсальные подходы.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Ro_Fro

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Что нужно доделать в ЖШ
« Ответ #535 : 02.12.2013, 23:17:16 »
Цитировать
Наверное не стоит втягивать всех в Ваши индивидуальные потребности.
Тут обсуждаются универсальные подходы.

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

P.S Извините что тут приходится разъясняться почему от меня поступило такое предложение.
« Последнее редактирование: 02.12.2013, 23:44:01 от Ro_Fro »
*

Ro_Fro

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Что нужно доделать в ЖШ
« Ответ #536 : 02.12.2013, 23:28:32 »
Еще очень бы хотелось что бы выводился артикул товара в административной панели в самом товаре при его создании во вкладке сопутствующие. Так как не понятно какой товар добавлен а какой нет если он имеет одинаковое название.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #537 : 02.12.2013, 23:45:53 »
По моему очень даже логично когда человек попадает именно в ту категорию товаров производителя в которой ему требуется товар.
ну например для меня не очень логично. второй пост - даже спорить не буду. хотелка универсальная, не только ваша. даже если у кого нет одинаковых названий, или нет артикулов в принципе, то общая логика не поломается. а по поводу первого - пример: зашел в категорию Шпатели, открыл товар Шпатель такой-то производителя скажем Oikos. положил в корзину. нужен еще валик того же производителя. кликаю на производителя, вижу его товары, перехожу к валику. логично? по вашей логике - перехожу в категорию Шпатели с производителем Oikos. причем шпатель у Oikos в принципе один. вижу один товар, который я уже добавил в корзину. что тут логичного? вывод:
Цитировать
не стоит втягивать всех в Ваши индивидуальные потребности
:)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Ro_Fro

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: Что нужно доделать в ЖШ
« Ответ #538 : 02.12.2013, 23:56:55 »
Шпатели тоже разные бывают. И из них нужно выбрать нужный (Ведь из поисковых систем люди не всегда попадают именно в тот товар который нужно, помому что запросы по " кривому" вводят в поисковики). А валик в сопутствующие. Логично ?

А товары того же производителя если не ошибаюсь выводит вроде бы модуль производители, или я что то путаю ?

P.S просто не раз уже сталкивались с ситуацией когда посетители кликают на логотип производителя попадают на все товары и в непонимании уходят с сайта.( в самом лучшем случае позвонят и спросят )
« Последнее редактирование: 03.12.2013, 00:04:02 от Ro_Fro »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #539 : 03.12.2013, 01:12:07 »
Цитировать
просто не раз уже сталкивались с ситуацией
это исключительно в контексте ваших товаров. я вам привел пример, когда так, как вы написали, наоборот не нужно. то, что вы хотите, гораздо менее универсально, чем то, что есть сейчас. для вашей задачи есть фильтры, а не товары производителя. почему именно той же категории? почему не того же продавца? или не с той же меткой? ну в общем, тема понятная (фильтрация), но в данном топике явно лишняя.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки магазина (2015)

Автор nevigen

Ответов: 162
Просмотров: 17335
Последний ответ 02.06.2024, 22:02:55
от Vastriet
(Проблема решена) Error - 1064

Автор pavel2950

Ответов: 17
Просмотров: 2286
Последний ответ 11.07.2017, 21:05:19
от Linfuby
Ошибка: 1064, t line 1 sql=select cat.description FROM #__categories cat WHERE cat.id=

Автор jeka odesskiy

Ответов: 18
Просмотров: 1864
Последний ответ 11.11.2016, 13:20:23
от kit2m2
Поменять местами данные в форме ФИО

Автор Roman74ru

Ответов: 1
Просмотров: 2080
Последний ответ 23.07.2016, 15:53:19
от Roman74ru
Не показывает товар при разных производиm

Автор kossss5

Ответов: 0
Просмотров: 1352
Последний ответ 04.11.2014, 13:42:39
от kossss5