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

IceFusion

  • Захожу иногда
  • 60
  • 0 / 1
Tug обещал зайти на выходных, но не зашел ( Помогите хоть кто нибудь Подскажите какие настройки выставлять в первом и третьем окне, т.е. разделитель полей и разделитель текста (в модуле загрузки и в OpenOffice по разному называются параметры) да и вообще какой принцип. Если у меня еще нету категорий и вообще ничего, можно сразу параметры загружать? Он автоматически создат необходимые категории и т.п.?

[вложение удалено Администратором]
« Последнее редактирование: 09.09.2007, 23:19:45 от IceFusion »
*

IceFusion

  • Захожу иногда
  • 60
  • 0 / 1
Спасибо за помощь, помогли через ICQ. Никто не пробовал заливать сложную цену? Допустим цена меняется от количества товара, как реализовать?
*

mich

  • Осваиваюсь на форуме
  • 10
  • 1 / 0
А почему мои посты были, пропущены???
*

morph

  • Давно я тут
  • 924
  • 105 / 0
Цитировать
Никто не пробовал заливать сложную цену? Допустим цена меняется от количества товара, как реализовать?
tug здесь уже описывал как заливать разные цены,в зависимости от количества товара-у меня все получилось,если что,стучитесь
*

ink-market

  • Новичок
  • 5
  • 2 / 0
Модификация работает. За неё спасибо!
Но у меня есть вопросы:

1) Можно сделать так, что бы в файле товары не писать "путь до родительской категории" а указывать id категории. А сами категории загружать отдельным файлом.
Например:
 id категории | id родительской категории | название категории | описание | и т.д.

На моих сайтах которые не на joomla так всё и сделано - и очень удобно управлять каталогом.

2) Можно как нибудь в файле "товары" сразу прописывать рекомендуемые товары?
*

mich

  • Осваиваюсь на форуме
  • 10
  • 1 / 0
Данный раздел жив???
меня интересует simple csv можно считать универсальным средством загрузки???
со штатным как я понял проблем очень много.
Но вот такой момент с выгрузкой, чтобы верхние поля оставались такими же как и при загрузке (т.е. понятные)
потому что иногда приходится удаленно на сайте править данные.
*

mif_e

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Очень нужная штука. Странно что такого не делают те, кто магазин кодит.
-
Люди, а пример загрузки категорий есть у кого нить? А-то я что-то попасть пока не могу в правильный формат файла. Поля распознаются нормально, а вот в полях что-то с путями к категориям нетак видать указываю. Пока категории создаются в корне каталога, хотя должны попадать на третий-четвертый уровень.
Я пробовал такие варианты:
Все они попали на верхний уровень каталога.

[вложение удалено Администратором]
« Последнее редактирование: 22.11.2007, 11:49:10 от mif_e »
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Может глюк для добавления категорий?
Если добавлять товары, то категории создаются нормально. Может попробуй по 1-му товару на каждую категорию, импортируй типа товары.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

mif_e

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Так вопрос то не в том чтобы категории добавить, а в том, чтобы их настраивать через csv. Категории-то у меня уже есть. А вот файлы шаблона, файлы картинок подключить бы.
И походу еще глючекс есть..
Есть у меня товар в категории: "Изделия из акрилового стекла/Подставки для косметики/C - Подставка под тени, румяна". Как видите в тексте встречается запятая.. Разделители я конечно поставил НЕ запятая (если точнее, то "|"). При загрузке запятая похоже тоже пошла за разделитель, т.к. у меня в итоге на третьем уровне появилась категория: "C - Подставка под тени", и на первом уровне появилась категория "румяна".
« Последнее редактирование: 22.11.2007, 12:05:30 от mif_e »
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Запятая - проблемма. Меняй на код запятой в прайсе. По-моему, я где-то похожую проблемму исправлял в коде. Но проще автозаменой в екзеле.
По поводу настройки категорий не скажу - не пробовал.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

mif_e

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
По мне лучше найти этот глюк в коде. Я предпочитаю, когда мне для наполнения не обязательно было привлекать энштейна.. если с работой может справиться тупой компьютер, то лучше ему и поручить это.
*

mif_e

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
А tug похоже вобще ушел..   >:(
*

mif_e

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Запятая - проблемма. Меняй на код запятой в прайсе....
Почитал я скрипт, попробовал разделитель задать жестко в коде... не помогло. А какой код запятой? Я хочу попробовать замену всех запятых на код запятой сделать в скрипте.
Ну а почему категории попадают нетуда, куда надо, я еще не вычитал в скрипте.
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

JDV

  • Захожу иногда
  • 108
  • 0 / 0
Добрый день! Подскажите а почему возникает такая ошибка?

Ошибка: Mime type not accepted. Type for file uploaded: application/x-zip-compresse
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Так вопрос то не в том чтобы категории добавить, а в том, чтобы их настраивать через csv. Категории-то у меня уже есть. А вот файлы шаблона, файлы картинок подключить бы.
И походу еще глючекс есть..
Есть у меня товар в категории: "Изделия из акрилового стекла/Подставки для косметики/C - Подставка под тени, румяна". Как видите в тексте встречается запятая.. Разделители я конечно поставил НЕ запятая (если точнее, то "|"). При загрузке запятая похоже тоже пошла за разделитель, т.к. у меня в итоге на третьем уровне появилась категория: "C - Подставка под тени", и на первом уровне появилась категория "румяна".

Вопрос решается таким образом.
Файл
administrator\components\com_virtuemart\classes\ps_simple_csv.php
в районе строки
806
видишь
Код
    if( !is_array($paths) ) $paths = explode(',', $paths);
    if( !is_array($paths) ) $paths = explode('|', $paths);
    if( !is_array($paths) ) $paths = explode(';', $paths);

Меняешь этот фрагмент на

Код
//##my Закоментував, щоби не било категорію по комах    if( !is_array($paths) ) $paths = explode(',', $paths);
    if( !is_array($paths) ) $paths = explode('|', $paths);
//##my Закоментував, щоби не било категорію по крапка з комами    if( !is_array($paths) ) $paths = explode(';', $paths);

Бить категорию будет только по слешам.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Добрый день! Подскажите а почему возникает такая ошибка?

Ошибка: Mime type not accepted. Type for file uploaded: application/x-zip-compresse
Опиши, не поленись, полностью ситуация, когда, что ты делаешь, откуда вылазит ошибка. И всегда задавай вопрос в такой форме, чтобы было максимум информации. Чтобы не переспрашивали.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

JDV

  • Захожу иногда
  • 108
  • 0 / 0
Опиши, не поленись, полностью ситуация, когда, что ты делаешь, откуда вылазит ошибка. И всегда задавай вопрос в такой форме, чтобы было максимум информации. Чтобы не переспрашивали.


Спасибо за отклик! Еще раз все пересмотрел ... теперь загружаю файл (см. присоединение ниже) получается такое -Инфо: Начало обработки CSV.
Инфо: Строка 1
Не указан обрабатывающий модуль.
Строка пропущена.
Время выполнения: 0.0001 сек.
Инфо: Строка 2
Не указан обрабатывающий модуль.
Строка пропущена.
Время выполнения: 0.0001 сек.


[вложение удалено Администратором]
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Ты пример видел формирования файла прайса? Там первых постах есть. Конечно не работает.

Ибо выглядеть должно приблизительно так:
Код
Товары
Наличие на складе;Наличие товара| Отгрузка| Артикул| Наименование товара| Цена товара| Оптовая цена;Мелкий опт| Оптовая цена;Крупный опт| Гарантия;Гарантия| Путь до родительской категории товара| Производитель

товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASR775I945GZ945|MB ASRock 775I945GZ, i945GZ, s775, VGA, FSB 800, S-ATA,DDRII533,AGI (PCI-E 4x),SB7.1, 10/100Lan,mATX|60,00|59,00|57,00|22|1. Системные платы/Socket 775|ASRock
товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASR775XFIRERAID925|MB ASRock 775XFIRE-RAID, i925 FSB 800/533, DDRII533, PCI-E, SATAII RAID, SB 5.1, 100Mb LAN|64,00|63,00|60,00|22|1. Системные платы/Socket 775|ASRock
товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASROCKCONROE945GDVI|MB ASRock ConRoe945G-DVI, i945G, FSB1066, DDR2-667, SVGA, PCI-E16x, SATAII, 1Gb Lan, SB 8ch, mATX|75,00|74,00|71,00|22|1. Системные платы/Socket 775|ASRock
товар есть на складе|je.gif|MBASROCKCONROE945PLGLA|MB ASRock ConRoe945PL-GLAN, i945PL, FSB800, DDR2-533, PCI-E16x, SATAII, 1Gb Lan, SB 8ch, ATX|65,00|63,00|59,00|22|1. Системные платы/Socket 775|ASRock
товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASUSP5BMXWF|MB ASUS P5B - MX/WiFi-APP,i946GZ,FSB1066,SVGA,PCI-E16x,DDR2-667,SATA2,1Gb Lan, SB 6ch, WiFi,uATX|86,00|85,00|84,00|12|1. Системные платы/Socket 775|Asus
товар есть на складе|je.gif|MBASUSP5B|MB ASUS P5B ,I965, FSB1066, DDR2-800, PCI-E16x, SATA2 RAID, 1Gb LAN, SB 8ch, ATX|118,00|114,00|111,00|24|1. Системные платы/Socket 775|Asus
товар есть на складе|je.gif|MBASUSP5B1333|MB ASUS P5B ,I965, FSB1333, DDR2-800, PCI-E16x, SATA2 RAID, 1Gb LAN, SB 8ch, ATX|113,00|110,00|105,00|24|1. Системные платы/Socket 775|Asus

P.S. Заголовки типа "Наличие на складе;Наличие товара" или "Оптовая цена;Крупный опт" не встроенные в магазин. Сначала надо добавлять соответствующие типы.
Работает этот прайс на softservice.com.ua
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Serho

  • Новичок
  • 3
  • 0 / 0
Ребята а ролик будет? А то я сам очень боюсь базу похерить. Пожалуйста ^-^
Думаю этот ролик многим поможет не задавать глупые вопросы. Так как вещи очевидные для спецов, для начинающих совсем не очевидные. В любом случае выражаю tug благодарность за проделанную работу, без таких людей joomla и virtuemart никогда не стали бы так популярны и удобны.
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Я бы на месте tug'a внёс корректывы в первый пост топика, чтобы там был линк на последнюю версию и корректные примеры. А то чтобы раздуплиться со стороны надо читать 5 страниц форума.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

ink-market

  • Новичок
  • 5
  • 2 / 0
Ты пример видел формирования файла прайса? Там первых постах есть. Конечно не работает.

Ибо выглядеть должно приблизительно так:
Код
Товары
Наличие на складе;Наличие товара| Отгрузка| Артикул| Наименование товара| Цена товара| Оптовая цена;Мелкий опт| Оптовая цена;Крупный опт| Гарантия;Гарантия| Путь до родительской категории товара| Производитель

товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASR775I945GZ945|MB ASRock 775I945GZ, i945GZ, s775, VGA, FSB 800, S-ATA,DDRII533,AGI (PCI-E 4x),SB7.1, 10/100Lan,mATX|60,00|59,00|57,00|22|1. Системные платы/Socket 775|ASRock
товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASR775XFIRERAID925|MB ASRock 775XFIRE-RAID, i925 FSB 800/533, DDRII533, PCI-E, SATAII RAID, SB 5.1, 100Mb LAN|64,00|63,00|60,00|22|1. Системные платы/Socket 775|ASRock
товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASROCKCONROE945GDVI|MB ASRock ConRoe945G-DVI, i945G, FSB1066, DDR2-667, SVGA, PCI-E16x, SATAII, 1Gb Lan, SB 8ch, mATX|75,00|74,00|71,00|22|1. Системные платы/Socket 775|ASRock
товар есть на складе|je.gif|MBASROCKCONROE945PLGLA|MB ASRock ConRoe945PL-GLAN, i945PL, FSB800, DDR2-533, PCI-E16x, SATAII, 1Gb Lan, SB 8ch, ATX|65,00|63,00|59,00|22|1. Системные платы/Socket 775|ASRock
товар ожидается и доступен к заказу (поставка в течении 1-2 дней)|zamovlennya.gif|MBASUSP5BMXWF|MB ASUS P5B - MX/WiFi-APP,i946GZ,FSB1066,SVGA,PCI-E16x,DDR2-667,SATA2,1Gb Lan, SB 6ch, WiFi,uATX|86,00|85,00|84,00|12|1. Системные платы/Socket 775|Asus
товар есть на складе|je.gif|MBASUSP5B|MB ASUS P5B ,I965, FSB1066, DDR2-800, PCI-E16x, SATA2 RAID, 1Gb LAN, SB 8ch, ATX|118,00|114,00|111,00|24|1. Системные платы/Socket 775|Asus
товар есть на складе|je.gif|MBASUSP5B1333|MB ASUS P5B ,I965, FSB1333, DDR2-800, PCI-E16x, SATA2 RAID, 1Gb LAN, SB 8ch, ATX|113,00|110,00|105,00|24|1. Системные платы/Socket 775|Asus

P.S. Заголовки типа "Наличие на складе;Наличие товара" или "Оптовая цена;Крупный опт" не встроенные в магазин. Сначала надо добавлять соответствующие типы.
Работает этот прайс на softservice.com.ua

А можно подробнее по-поводу дополнит. типов.
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
ты хочеш добавить ко всем товарам "гарантию".
Добавляешь в админке магазина в пункте Товары тип "Общий тип" а в него параметр "Гарантия".
Хочешь добачить газонокасилкам размер бака, который не актуален лестницам. Создаёшь тип "Газонокасилки" и добавляешь параметр "Размер бака".
Только это теория магазина, а конкретно к модификации не относится. Оффтопик.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

JDV

  • Захожу иногда
  • 108
  • 0 / 0
Добрый день, уважаемые товарищи! Подскажите почему возникает такая ошибка?
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 148 bytes) in /usr/home/12631/star-cars.ru/html/administrator/components/com_virtuemart/classes/ps_simple_csv.php on line 434
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
На хостинге разрешённого объема памяти для скрипта не хватает. Надо либо просить хостера расширить лимит, либо одно из двух.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

JDV

  • Захожу иногда
  • 108
  • 0 / 0
а что без общения с хостером не обойтись ведь есть всего 2000 записей
см. файл в приложении

[вложение удалено Администратором]
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Да дело не в колличестве, а в размере информации, видимо. Очевидно самого текста в описаниях много. Тут или мало записей но много текста, или наоборот.
Разве что частями импортировать. Но тогда нельзя будет использовать  выключение товаров, которых нет в прайсе.
Я не уверен, но может можно исправить в коде мода где-то размер блока импорта. Может поможет, но вроде нет, всё равно всё в памяти сидит. tug может точно сказать.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

JDV

  • Захожу иногда
  • 108
  • 0 / 0
Странно .... Спасибо за помощь!:))) Буду думать:))

Подскажите,
в описании товара присутствует код html, как сделать импорт сvs.
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Варианты:
1. Выбрать разделители, которые не конфликтуют с ХТМЛ
2. Автозаменой убрать конфликтные части ХТМЛ.
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Хак] Ускорение загрузки магазина (минимум в 10 раз)

Автор ifx

Ответов: 66
Просмотров: 40750
Последний ответ 15.01.2020, 10:38:34
от ChaosHead
Модификация поиска

Автор Александр216

Ответов: 7
Просмотров: 1608
Последний ответ 19.03.2013, 23:54:51
от Александр216
Расширяний вид админки через сайт

Автор ranaza

Ответов: 1
Просмотров: 1341
Последний ответ 25.08.2012, 11:50:30
от ranaza
Модификация browse_listtable.tpl.php

Автор Servelatin

Ответов: 0
Просмотров: 1337
Последний ответ 15.05.2012, 16:23:23
от Servelatin
Без оплаты через сайт, наличными при получении

Автор doroshenkok

Ответов: 0
Просмотров: 1473
Последний ответ 13.03.2012, 10:29:48
от doroshenkok