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

но после этого при загрузке файла пишет ошибку serurity token
to EMakar
напиши что у тебя будет выводить

У меня была та же фигня. Но добрые люди помогли исправить
Вот тут описано решение: http://forum.virtuemart.net/index.php?topic=36651.msg113468
То же самое нужно проделать и с файлом product.simple_csv_upload.php

Теперь вроде как работает (правда у меня осталась проблема с кодировкой)

Подскажите, пожалуйста, алгоритм действий, а то не въеду что-то. Мне нужно поменять цены в уже существующем списке товаров, оставив все остальные поля нетронутыми. Использование стандартного модуля в VM не приносит результата: я экспортирую csv-файл, меняю там цены, импортирую его на сайт и ничего не происходит. Что я делаю не так? Если это лучше делать с помощью simple_csv, то как?
Плиз, очень нужен ответ..

Проблема.
Joomla! Version 1.5.3
VirtueMart 1.1.0
Делаю все по инструкции , на этапе где надо перейти по administrator/index2.php?option=com_virtuemart&page=admin.simple_csv_install
вылезает ошибка :

*

Gruz

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

Listopad

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Чего-то ничего понять не могу... !!!???!!!
Составьте, плз, цсв для картинной галереи с такими параметрами:
номер картины, категория, название, материал, высота, ширина, год создания, цена, валюта (в ВМРЕ 1.0.15b добавил евро, проставил в товаре - вывело всеравно рубль), в наличии или под заказ, большое изображение, маленькое изображение.
Вот что Joomla выдает:

~g 012~^~Малиновый кот~^~Живопись~^~500.00000~^~оргалит, масло~^~~^~afc67756abb8e22f351b621b4bccce56.jpg~^~4d361ddff3b6b6dd052626f00422e675.jpg~^~0.0000~^~кг~^~0.0000~^~39.0000~^~44.0000~^~см~^~0~^~30/11/2004~^~0~^~1~^~0~^~0~^~g 012~^~~^~~^~~^~~^~~

"оргалит, масло" - описание товара. А мне нужно н описание, а возможность сортировки и поиска по параметру. Как сделать?
*

Gruz

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

Listopad

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Во флаере просто пишуться имена полей. Перефразирую свой вопрос: как мне добавить собственные поля?
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Listopad
Как этот вопрос относится к теме импорта? Ты хочешь импортировать собственные поля (говорим про атрибуты?), или не знаешь, как их создать?

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

Уточните наличие товара или доступность под заказ|zamovlennya.gif|ASUSKK8VMX|MB ASUS K8V-MX|57,00|55,00|50,00|1|1. Системные платы/Socket 754|Asus

Уточните наличие товара или доступность под заказ|zamovlennya.gif|MBASUSK8VVM|MB ASUS K8V-VM, K8M890, A64 s754,PCI-E16x,Video, DDR400,SATA Raid,1Gb LAN,Sb 6ch, mATX|57,00|55,00|53,00|30|1. Системные платы/Socket 754|Asus



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

Listopad

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Listopad
Как этот вопрос относится к теме импорта? Ты хочешь импортировать собственные поля (говорим про атрибуты?), или не знаешь, как их создать?

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

Уточните наличие товара или доступность под заказ|zamovlennya.gif|ASUSKK8VMX|MB ASUS K8V-MX|57,00|55,00|50,00|1|1. Системные платы/Socket 754|Asus

Уточните наличие товара или доступность под заказ|zamovlennya.gif|MBASUSK8VVM|MB ASUS K8V-VM, K8M890, A64 s754,PCI-E16x,Video, DDR400,SATA Raid,1Gb LAN,Sb 6ch, mATX|57,00|55,00|53,00|30|1. Системные платы/Socket 754|Asus



Это то?
То. Только у меня дополнительными полями будут "материал", "год создания" (не "дата" - без дня и месяца), возможно "валюта" (не понял пока, как мне EUR прописать), "наличие под заказ".
Я думал, что тутошняя модификация позволяет создать новые поля, просто прописав их в цсв.
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Для этого надо создавать отдельную таблицу в ЦСВ, а лучше отдельным ЦСВ это делать.

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

Listopad

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
А чтобы можно было потом делать поиск и сортировку по параметру, надо что бы тип параметра был "Несколько значений"?
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Листопад, тебе изветен термин оффтопик?

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

Listopad

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Листопад, тебе изветен термин оффтопик?
:sorry: (Хотя, больше бы порадовал ответ вроде "т.к. данный мод пишет добавленные поля в таблицу  jos_vm_product_type_1 (у меня во всяком случае, так), а не jos_vm_product, то в коде модуля поиска/сортировки по параметрам нужно внести такие-то изменения".)

Теперь:
прописал поля:
Код
Параметры|||||||||
Тип|Наименование в базе|Наименование|Описание|Номер по порядку|Тип параметра|Возможные значения|Множество значений|Значение по умолчанию|Единица измерения
Картины|product_tec|Техника||4|S||||
Картины|product_year|Год создания||7|I||||год
Картины|product_poz|Позиция||11|F||||
Написало, что все нормально (как я уже сказал, загнало в jos_vm_product_type_1 какое-то). Но, в "CSV Ипорт / Экспорт Настройки" поля не появились. Ок, прописал порядок тех, что были. Добавляю товар:
Код
||||||||||
Товары||||||||||
Категория|Артикул товара|Название товара|Техника|Высота|Ширина|Год создания|Большое изображение|Маленькое изображение|Цена|Позиция
Живопись|G012|Малиновый кот|оргалит"," масло|44|39|2004|raboty\givopis\b\012.jpg |raboty\givopis\m\012.jpg |500|1
Китайцы не хотят (убрать |||||||||| и кавычки пробовал):
Код
Инфо: Начало обработки CSV.
Инфо: Строка 1
Не указан обрабатывающий модуль.
Строка пропущена.
Время выполнения: 0.0001 сек.
Инфо: Определение формата файла успешно выполнено. Время выполнения: 0.0014 сек.
Ошибка: Поле <b>Артикул товара</b> обязательно для заполнения.
Ошибка: Название товара обязательно для заполнения.
Ошибка: Категория должна быть выбрана.
Инфо: Строка 4
Товар не был добавлен. |
Время выполнения: 0.0176 сек.
Инфо: Обработка CSV завершена.
Общее время выполнения: 0.0245 сек.
Ыть?
« Последнее редактирование: 18.07.2008, 17:00:58 от Listopad »
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
:sorry: (Хотя, больше бы порадовал ответ вроде "т.к. данный мод пишет добавленные поля в таблицу  jos_vm_product_type_1 (у меня во всяком случае, так), а не jos_vm_product, то в коде модуля поиска/сортировки по параметрам нужно внести такие-то изменения".)

Это не модуль пишет, это так в магазине организовано. И модуль пишет как магазину удобно.
Я бы типы, если у тебя их не несколько десятков, лучше бы руками добавил разово.

Если говорит, что неправильно указан обработчик, видимо ты неправильно указал разделители.

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

No_LiMiT

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Помогите пожалуйста, как очистить базу с товарами что бы загрузить другую! Спасибо!
*

Listopad

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Я бы типы, если у тебя их не несколько десятков, лучше бы руками добавил разово.
так и сделал. :)
*

secretlive

  • Захожу иногда
  • 52
  • 0 / 0
Ребята чо за козявки, при импорте товаров через даный хак страница некое время чехлит, а потом пишет невозможно отобразить страницу, и при этом апач пожерает много оперативы

Хотя производители загружает норм

юзаю пятую версию

Код
Товары||||
Артикул|Наименование товара|Цена товара|Путь до родительской категории товара|Производитель
ASUSKK8VMX|MB ASUS K8V-MX|57|Системные платы|Asus
*

apirat

  • Захожу иногда
  • 122
  • 5 / 0
  • ...опачки!
нескромный вопрос, а как работать с товарами которые можно скачать? В каком поле писать название файла и в каком поле отмечать что этот товар скачиваемый!?
*

akman

  • Новичок
  • 3
  • 0 / 0
Я все-таки не могу врубиться, почему когда я обновляю товары он мне некоторые товары по 3, 5 раз повторяет? Пробовал уменьшать длину наименования, помогает через раз!!!
*

Caurus

  • Новичок
  • 6
  • 0 / 0
Люди нужна помощь! кто ставил на Joomla! 1.0.15 Lavra Edition 2008 - VirtueMart 1.1.2?? Все поставилось все работает! Но когда поставил этот хак... происходит следующее можно импортировать название, артикул, категорию. Пытаюсь сделать Цену товара... ноль реакции.. залез в базу там создаются цены для этих товаров, но все по нулям! попробовал для интереса может этот столбец не читает, вставил там URL в название столбца.. в урлы занес.. т.е. столбец он видит.. В чем прикол? почему все работает, а цены не работают???? И еще подскажите, как пользоваться стандартными средствами импорта экспорта? не могу найти кнопки ткните на описание как с ними работать! csvimproved не предлагать, php 5 нет! устраивает этот хак.. только не понимаю, почему не работает! Нужна помощь!

Я когда читал, было написано что сам хак ничего не трогает все передает в VirtueMart и тот сам все выполняет.. может какие переменные изменились! Пожалуйста, помогите!!!
*

morph

  • Давно я тут
  • 924
  • 105 / 0
>>>>только не понимаю, почему не работает! Нужна помощь!
хак для версии 1.0.*
для 1.1.2 править надо
*

Caurus

  • Новичок
  • 6
  • 0 / 0
Я у ж почитал, что зря я связался с VirtueMart 1.1.2!!! Надо брать 1.0.15! И с ней работать! Просто я думал, что когда писали про версию VirtueMart 1.1.* это давно было и она уже нормальная стала... а тут вообще вопрос в другом оказался..она в принципе не нужна сейчас! И стоит брать только VirtueMart 1.2 линейку, когда будет! Вот.... Сейчас переставлю и попробую!
*

djmix

  • Новичок
  • 6
  • 0 / 0
Цитировать
надо добавить ф-ию в модул products (настройки-список модулей-products там выбрать ф-ии и доватить следующую ф-ию
имя функции  product_simple_csv
Друзья! А можно поподробнее, потому как такого модуля я не нашел. Спасибо

Спасибо. за программку
« Последнее редактирование: 18.01.2009, 17:24:30 от Ghoper »

А на версии VirtueMart  1.0.15b  этот скрипт не работает номально я так понимаю? Первый раз нормально грузится а последующие не обновляет цену.

Вопрос решился
*

artclimat

  • Новичок
  • 8
  • 0 / 0
Лавр, как решился вопрос?) У меня такая же проблема. Начал перезаливать прайс, но старая цена на новую не меняется.  В чём проблема помогите.

добавьте поле product_currency, я его рядом с ценой поставил и заполняю содержимым руб., долго конечно не мог понять в чем дело, добрые люди помогли :)


Цена товара   product_currency
30142               руб.
*

matiass

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
У кого не добавляет "Цена товара" проверять Магазин>информация о магазине>валюта.

*

artclimat

  • Новичок
  • 8
  • 0 / 0
Парни, спасибо большое! Кстати замечу, что проблема с ценой появилась после того,как я сменил валюту на сайте с руб. на $(в связи со сложившейся ситуацией). Я поставил в VM валюту $ и в созданном поле Product_currency поставил $

Цена товара   product_currency
        609           $


Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор ifx

Ответов: 66
Просмотров: 40751
Последний ответ 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