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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Что нужно доделать в ЖШ
« Ответ #420 : 02.04.2013, 10:34:23 »
Виктор, этот модуль выводит товары в порядке, установленном в админке магазина? в админке можно устанавливать порядок для вывода?
Нет выводит продукты по id: 1,2,6,9.. без сортировки
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Что нужно доделать в ЖШ
« Ответ #421 : 02.04.2013, 11:55:30 »
Если брать группы. То не совсем понятно зачем здесь надо было уходить от стандартных групп. Зачем это лишнее АPI код и т.д. Чем не устроили стандартные группы. Вы запутываете нас как разработчиков так и пользователей. Группы Joomla, группы магазина группы дяди Васи.  ^-^
*

jorevo

  • Давно я тут
  • 595
  • 13 / 1
Re: Что нужно доделать в ЖШ
« Ответ #422 : 02.04.2013, 13:14:51 »
Нет выводит продукты по id: 1,2,6,9.. без сортировки

Собственно писал уже об этом... а можно именно в админке по категориям, производителям, продавцам и пр. задать быструю сортировку по алфавиту, чтобы в одно движение перестраивались циферьки в поле "сортировка". Просто сейчас это приходится делать через экспорт таблицы категорий в csv, прописывать сортировку в экселе и импортировать обратно. А как ещё быть, если категорий более 50 и набиты они в произвольном порядке? Их и отсортировать через стрелочки вверх/вниз мука, и добавленную категорию двигать каждый раз то ещё удовольствие и, вновь добавленному, товару назначать категорию из неупорядоченного списка - нервный срыв. Сделайте пожалуйста сортировку для админки, а то прямо сгорают нервные клетки одна за другой... и не восстанавливаются!
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Что нужно доделать в ЖШ
« Ответ #423 : 03.04.2013, 10:21:18 »
Собственно писал уже об этом... а можно именно в админке по категориям, производителям, продавцам и пр. задать быструю сортировку по алфавиту, чтобы в одно движение перестраивались циферьки в поле "сортировка". Просто сейчас это приходится делать через экспорт таблицы категорий в csv, прописывать сортировку в экселе и импортировать обратно. А как ещё быть, если категорий более 50 и набиты они в произвольном порядке? Их и отсортировать через стрелочки вверх/вниз мука, и добавленную категорию двигать каждый раз то ещё удовольствие и, вновь добавленному, товару назначать категорию из неупорядоченного списка - нервный срыв. Сделайте пожалуйста сортировку для админки, а то прямо сгорают нервные клетки одна за другой... и не восстанавливаются!
Поддерживаю. За основу можно взять кнопку "Сохранить сортировку" в производителях
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #424 : 18.04.2013, 01:40:23 »
Виктор...
Н сделайте уже кнопку сброс в админке в фильтрах. на заказах например...
уже даже просить можно устать.. ну вопрос 1 кнопки.. зато юзабилити +100500
пока отменишь все фильтры а потом нажмешь поиск опять ... уже работать не хочется...
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

RTEagle

  • Захожу иногда
  • 140
  • 6 / 0
Re: Что нужно доделать в ЖШ
« Ответ #425 : 29.04.2013, 13:01:26 »
Это только у меня так или у всех ошибка?

Стоит настройка "скрыть кнопку купить, если товара нет на складе". Для карточки товара работает, для списка - нет. Сравнил свой шаблон со стоковым, условия вывода одно и тоже.
Код
if ($product->buy_link)
На карточке товара другое условие и там всё работает, но для списка оно не подошло.
*

nevigen

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

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Что нужно доделать в ЖШ
« Ответ #427 : 29.04.2013, 14:48:54 »
Это только у меня так или у всех ошибка?

Стоит настройка "скрыть кнопку купить, если товара нет на складе". Для карточки товара работает, для списка - нет.
Возможно установлен аддон "Выбор количества товаров кнопками - и +".
Он меняет значение buy_link. Хотя с другой стороны он это делает после загрузки страницы...
Попробуйте отключить плагин.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

skyrec

  • Захожу иногда
  • 382
  • 10 / 0
  • Люблю я детей !!!
Re: Что нужно доделать в ЖШ
« Ответ #428 : 29.04.2013, 14:49:50 »
Можно сделать сброс стандартного фильтра при переходе из категории в категорию ? Зачем он вообще это запоминает ?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #429 : 29.04.2013, 15:56:33 »
потому что надо помнить и показывать выбранные позиции при переходе по страницам в пределах одной категории, производителя и т.д.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

RTEagle

  • Захожу иногда
  • 140
  • 6 / 0
Re: Что нужно доделать в ЖШ
« Ответ #430 : 29.04.2013, 16:21:58 »
Возможно установлен аддон "Выбор количества товаров кнопками - и +".
Он меняет значение buy_link. Хотя с другой стороны он это делает после загрузки страницы...
Попробуйте отключить плагин.

Да, именно в этом дело. Можно как-то поправить оставив плагин? Так удобно настроил красивый вывод под себя, а теперь от него отказываться, жалко.
*

Linfuby

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

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #432 : 06.05.2013, 12:36:44 »
2 Виктор

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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Что нужно доделать в ЖШ
« Ответ #433 : 06.05.2013, 12:57:07 »
Сейчас нет. (изменения потянут за собой очень много розширений)
*

skyrec

  • Захожу иногда
  • 382
  • 10 / 0
  • Люблю я детей !!!
Re: Что нужно доделать в ЖШ
« Ответ #434 : 06.05.2013, 15:05:11 »
Виктор, если нельзя сделать в стоке отключение памяти фильтра, то дайте пожалуйста корректную инструкцию как это отключить. Ну очень мешает. 
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #435 : 30.05.2013, 11:04:24 »
Будет ли перерабатываться шаблон админ частидля Версии ЖШ 4.2 ?
Он как-то очень выбивается из общей концепции Ж3.х
Необходимо мгновенно переключатся между подходами в 2.5и 3.0
элементы расположены по другому. в частности иконка публикации
да и вообще.. все не соответсвует..

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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Что нужно доделать в ЖШ
« Ответ #436 : 30.05.2013, 12:40:28 »
Будет позже.
*

nevigen

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #438 : 13.06.2013, 22:45:37 »
было бы неплохо при добавлении файлов добавить возможность выбора из уже загруженных на сервер. по подобию, как это сделано с изображениями. или просто обычным списком
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

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

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Что нужно доделать в ЖШ
« Ответ #440 : 20.06.2013, 15:46:03 »
Используйте характеристики
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #441 : 20.06.2013, 15:59:17 »
Виктор, характеристики не универсально. например, нет возможности едино в плагинах доставки сделать привязку к объему. Конечно можно задавать в настройках характеристики, отвечающие за габариты. но зачем лишние движения юзеру? а так можно их и в карточке выводит например как и вес, потому что Вес и Габариты это ж как бы всегда присуще товару. ведь вес - отдельное поле? а ведь тоже характеристикой можно было бы сделать.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #442 : 20.06.2013, 16:02:14 »
Виктор, логика понятна.

И зачастую логична.
Однако!
Есть служба доставки требующая габаритного расчета по отправляемому товару.
Ок. размеры характеристиками..
можно в натсйроках сделать чтобы задали какая характеристика для каждого размера
НО !
Допустим кто-то создал уже давно каталог и использует характеристикиу типа текст и задал размеры 20x35x150
Что ему теперь все 1000 или 200000 товаров переделывать ?

вообще то размерность это априори в любом магазине по дефолту.
чтобы было единое место и единый формат для всех.

ну не вопрос... локально можно решать ...
просто мне кажется, если делать то делать нормально.

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

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #443 : 20.06.2013, 19:15:45 »
поле суммы заказа в таблице изменить разрядность после точки.
потому что есть настройка точности цены и валюты.
однако все это по боку когда заказ сформирован, потому что платежный плагин берет сумму из заказа.
при двойных конвертациях на цифре 100 потери в 10% могут быть на кросс курсе.

пример
деф. валюта евро
евро - 1.0000
рубль - 45.0000
товару задана цена жестко - 1 руб.

рубль -> евро  - цена на сайте 0,02222
сумма заказа - 0.02 евро
отправляем на оплату руБЛЯми - 0.02*45=0.90
потеря -10%
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Что нужно доделать в ЖШ
« Ответ #444 : 21.06.2013, 09:55:45 »
Виктор, логика понятна.

И зачастую логична.
Однако!
Есть служба доставки требующая габаритного расчета по отправляемому товару.
Ок. размеры характеристиками..
можно в натсйроках сделать чтобы задали какая характеристика для каждого размера
НО !
Допустим кто-то создал уже давно каталог и использует характеристикиу типа текст и задал размеры 20x35x150
Что ему теперь все 1000 или 200000 товаров переделывать ?

вообще то размерность это априори в любом магазине по дефолту.
чтобы было единое место и единый формат для всех.

ну не вопрос... локально можно решать ...
просто мне кажется, если делать то делать нормально.

мне показалось что нужно доделать.
если у разработчика иное мнение... то.. что ж уж :)

Согласен. (таблица product уже большая (например проблемы с характеристиками)).
1. дописать поля в таблицу product (еще ограничить количество характеристик)
2. создать новую таблицу (поля product_id, height, length...)
*

nevigen

  • Moderator
  • 10452
  • 863 / 25
  • http://n*****n.com
Re: Что нужно доделать в ЖШ
« Ответ #445 : 21.06.2013, 10:33:51 »
Согласен. (таблица product уже большая (например проблемы с характеристиками)).
1. дописать поля в таблицу product (еще ограничить количество характеристик)
2. создать новую таблицу (поля product_id, height, length...)
Да Виктор я тоже думал об этом, когда писал.
Но решать вопрос с форматом данных нужно, пока есть отличный шанс перехода на 3.0 и не много пользователей еще будут "возмущаться"
при любых раскладах такой формат ограничивает.
ну решать Вам конечно...

и относительно валют поправите формат поля в базе для заказа ?

П.С. И еще мне кажется нужно выводить формирование селектов в контролере (например фильтр производителей, категорий в блоке фильтр).
имею ввиду это
Код
<?php if ($this->filter_show_manufacturer){?>
<span class="box_manufacrurer"><?php echo _JSHOP_MANUFACTURER.": ".$this->manufacuturers_sel?></span>
<?php }?>
очень ограничивает стилизацию кому то нужен селект, кому то не селект, а кто то хочет использовать скриптовый селект.
В общем затрудняет это очень работу с блоками этими.
« Последнее редактирование: 21.06.2013, 10:38:31 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #446 : 21.06.2013, 10:40:30 »
я думаю что лишний запрос или join не нужен. что характеристиками если это делали бы - все равно 3 поля в таблицу товаров, что просто добавить 3 поля height, length, width - тоже самое. в любом случае 3 колонки особо погоды не делают, а обработку упрощают
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Что нужно доделать в ЖШ
« Ответ #447 : 21.06.2013, 12:02:18 »
Цитировать
Да Виктор я тоже думал об этом, когда писал.
Но решать вопрос с форматом данных нужно, пока есть отличный шанс перехода на 3.0 и не много пользователей еще будут "возмущаться"
при любых раскладах такой формат ограничивает.
ну решать Вам конечно...

Хочу услышать мнение что сделать с характеристиками
1. таблица charkt
product_id, charkt_id, charkt_value
(+ - безлимит)
(- - усложняется поиск, вывод в спике продуктов)

2. таблица charkt (поля как раньше)
product_id,  extra_field_1,    extra_field_2,    extra_field_3
(- -  нет безлимит)
(+ - простой поиск, вывод в спике продуктов)


(Я сам не хочу изменений и усложнений в коде. (для большинства - хватает ) - но подумаем)
« Последнее редактирование: 21.06.2013, 12:09:26 от victorantoniak »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Что нужно доделать в ЖШ
« Ответ #448 : 21.06.2013, 13:25:17 »
...
product_id,  extra_field_1,    extra_field_2,    extra_field_3
...
(+ - простой поиск, вывод в спике продуктов)

Собственно старая схема ничего не упрощает, а в ряде случаев приводит к ненужным телодвижениям по распарсиванию extra_field_ и id и SHOW COLUMNS

Да и операции ALTER TABLE в ходе рядовых добавлений-удалений признаков - не самое лучшее решение.


UPD: И ещё - если в таблице товаров 150 полей с характеристиками, при том что отдельно взятой категории назначено например 10 - это означает что у отдельного товара 140 полей не заполнено.
А так чаще всего и бывает.
В этом случае при поиске большая таблица с товарами будет ворочаться намного медленнее, чем компактная отдельная таблица характеристик.
« Последнее редактирование: 21.06.2013, 13:32:48 от SDKiller »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #449 : 21.06.2013, 16:04:39 »
полностью согласен. я тоже за
1. таблица charkt
product_id, charkt_id, charkt_value
(+ - безлимит)
(- - усложняется поиск, вывод в спике продуктов)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор nevigen

Ответов: 162
Просмотров: 17349
Последний ответ 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
Просмотров: 1865
Последний ответ 11.11.2016, 13:20:23
от kit2m2
Поменять местами данные в форме ФИО

Автор Roman74ru

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

Автор kossss5

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