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

Gruz

  • Moderator
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Ну так укажи
Field delimiter - ; (точка с запятой)
Text Enclosure - " (двойная кавычка)
?

Вообще-то, всё отлично экспортируется в правильный CSV, который правильно понимается OpenOffice. Можно открыть в OpenOffice и сохранить в .xls


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

dimmer

  • Осваиваюсь на форуме
  • 32
  • 1 / 0
Подскажите, какие поля отвечают за дополнительные картинки товара? Добавил к товару 2 дополнительные картинки, экспортировал - ничего нет. Только  основная product_full_image, product_thumb_image
*

Gruz

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

dimmer

  • Осваиваюсь на форуме
  • 32
  • 1 / 0
Действительно, сделал экспорт файлов и нашел дополнительные рисунки. Неужели разработчикам не приходило в голову сделать шаблон "все в одном" для загрузки всех возможных полей в один проход. А так товар отдельно, рисунки отдельно, типы отдельно.
*

Gruz

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

При импорте товара на лок хостинг при предварительном просмотре пишет CANNOT_UPLOAD_CACHE и не выводит повторную кнопку Import, предварительный просмотр убирала - тогда ваще страница не загружается, ставлю назад - всё по-прежнему (( в чём может быть проблема? Joomla 1.1.3 CSV 1.6
*

Gruz

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

alekstar64

  • Новичок
  • 9
  • 2 / 0
Поборолся я с CSV Improved 1.6, ПОПЛЕВАЛСЯ. не понравился! без него обошелся!
БЫЛА ЗАДАЧА;
магазин электронных компонентов:
около 9000 позиций, по 4 колонки цен на позицию и воротами по количеству на каждую колонку,
3 политики продаж(группы покупателей).в итоге нужно было грузить и синхронизировать 5 колонок цен.
сразу оговорюсь, что картинки и прочие навороты грузить задачи не было!
1. подготовка файла, для одной колонки у меня занимала ~ 15 мин, при соответствующей подготовке прайса, все равно не меньше 5-ти
2. закачка ~ пол-часа, на не слабую железяку.
------------
итого: ~ 4-5 часов.
======================
РЕШЕНИЕ:
1. с 5.*-го mysql включена поддержка хранимых процедур
2. нарисовал на сервере пол-дюжины функций и процедур, собственно моторчик.
3. из экселя для каждой строки прайса через формулы слепил приблизительно вот такую строку:
select `p_in`('Активные компоненты','Транзистор биполярный','TOS','2-10L1A','2SB2222','5','6.55','5','6.6','1','7.14','7.58','','Y');
4. сохранил эту колонку ессно в utf8. размер ~ 1.6 мб
5. через http://host/phpmyadmin/ импортом втолкнул файлик в базу
----------------
2 МИНУТЫ 45 СЕКУНД!
----------------
НЕДОСТАТКИ:
1.нужно знать PL/sql
2.разобраться со структурой таблиц и полей VM
3.если поменяю хостинг и будет несоответствие версии mysql, нужно будет корректировать процедуры
+++++++++++++++
ПЛЮСЫ:
1.гибкость(в частности в vm_product_price добавил еще пару полей, для тиражирования цен, через те же процедуры)
2.скорость адаптации того скрипта, который уже есть под новый шаблон прайса
3.OPEN SOURCE, т.е. легко воровать (МИНУСЫ - нужно суметь под себя подстроить - политику продаж проще(для меня) настривать прямо в скрипте)
« Последнее редактирование: 09.04.2010, 12:37:37 от alekstar64 »
*

radius

  • Давно я тут
  • 550
  • 45 / 0
----------------
2 МИНУТЫ 45 СЕКУНД!
----------------
Вы умолчали, сколько времени у вас заняло изучение структуры данных VM, а так же разработка и отладка хранимых процедур. Так же вы умалчиваете, сколько времени необходимо, чтобы доработать ваши процедуры, если понадобится импорт других полей, например типов, производителей и тп. Ежу понятно, что если программа написана на более низкоуровневом средстве, тем она быстрее работает и тем менее она универсальна.

PS "нужно знать PL/sql" - PL/SQL - это название диалекта SQL ORACLE, а не MySQL
*

alekstar64

  • Новичок
  • 9
  • 2 / 0
...сколько времени у вас заняло изучение структуры данных VM, а так же разработка и отладка хранимых процедур.
........
PS "нужно знать PL/sql" - PL/SQL - это название диалекта SQL ORACLE, а не MySQL
joomla и VM впервые установил приблизительно месяц назад.
в тех требованиях, которые сложились к магазину, по ценовой политике, понял, что в стандартной конфигурации я не поборю. пришлось добавлять поля.
последняя проблема была с синхронизацией прайса. ничего путевого и стандартного не нашел.
4 дня назад выяснил, о начале поддержки сервером mysql, с версии 5.* хранимых процедур и функций.
имея >10 лет опыта работы с oracle на pl/sql, адаптироваться к синтаксису, написать и отладить ту часть, которая меня интересовала, заняло 3 не полных дня.
касательно PL/SQL
http://ru.wikipedia.org/wiki/PL/SQL
"PL/SQL (Procedural Language / Structured Query Language) — язык программирования, процедурное расширение языка SQL корпорацией Oracle. Базируется на языке Ада.
Функциональность
PL/SQL даёт возможность использовать переменные, операторы, массивы, курсоры и исключения..."
не удивлюсь, если к 7-й версии mysql сервера синтаксис языков подравняется, а вот с 5-й версии он уже стал Procedural Language/SQL, а не просто SQL  ;)

ЗЫ.сечас компонента(язык не поворачивается так громко называть - 15кб pl/sql скрипта) СЫРОВАТА. через пару недель, надеюсь что то сложится. по развитию этой идеи, вариантах распостранения и использования напишу на:
http://elcom.azov.net/там кстати и тестировал...
« Последнее редактирование: 09.04.2010, 22:52:19 от alekstar64 »
*

Gruz

  • Moderator
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
alekstar64, я думаю, если бы ты написал такое крутое расширение, то цены бы тебе не было! В смысле, буржуи бы покупали круто. И вставил бы этот ненавистный CSVImproved. Оно на слона в посудной лавке более похоже, чем на работающее расширение. Но просто кроме Роланда, вообще ничего нет.

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

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Ну почему, я в JoosMart встроил загрузку tug-а, пробовал загружать 1300 товаров, денвер справился, вот с 12000 товарами затыка вышла, но я уже много чего переделал, можно снова попробовать. По функционалу по-моему ничем не хуже, а то и лучше CSVImproved.
*

radius

  • Давно я тут
  • 550
  • 45 / 0


Ну чтож, если напишете универсальную процедурную загрузку из админки Joomla  - это  будет здорово, огромный шаг вперед так сказать для пользователей VM. Очевидно, что это должен быть отдельный компонент с настройками загружаемых полей. МОжно даже взять CSVImproved и заменить процедуру загрузки данных на серверную процедуру SQL. Если справитесь, вам будет огромнейший респект. ПОдводные камни могут быть следующими: Я не изучал код CSVImproved, но скорее всего он использует API VirtueMart для добавления сущностей, если так, то CSVImproved априори совместим с будущими версиями VM даже при существенном изменении структуры БД в новых версиях VM. В этом случае придется тщательно следить за обновлениями VM, чтобы сохранять актуальность хранимых процедур импорта в новом компоненте.
*

radius

  • Давно я тут
  • 550
  • 45 / 0
касательно PL/SQL
http://ru.wikipedia.org/wiki/PL/SQL
"PL/SQL (Procedural Language / Structured Query Language) — язык программирования, процедурное расширение языка SQL корпорацией Oracle. Базируется на языке Ада.
Функциональность
PL/SQL даёт возможность использовать переменные, операторы, массивы, курсоры и исключения..."
не удивлюсь, если к 7-й версии mysql сервера синтаксис языков подравняется, а вот с 5-й версии он уже стал Procedural Language/SQL, а не просто SQL  ;)

Есть еще Transact SQL (T-SQL) - процедурное расширение языка SQL от компании Microsoft. Так что называть все диалекты языка SQL, поддерживающие хранимые процедуры, языком PL/SQL некорректно. PL/SQL - это именно расширение языка SQL от Oracle.
*

alekstar64

  • Новичок
  • 9
  • 2 / 0
Уважаемый Radius
PL/SQL - это именно расширение языка SQL от Oracle.
http://ru.wikipedia.org/wiki/MySQL
"26 февраля 2008 года Sun Microsystems приобрела MySQL AB за $1 млрд.[2] 27 января 2010 года Oracle Corporation приобрела[3] Sun Microsystems и включила MySQL в свою линейку СУБД."
-------------------
предлагаю тему закрыть, а Модератору удалить ЭТО, это тема другого форума и во всяком случае не этой проблемы
« Последнее редактирование: 09.04.2010, 20:04:15 от alekstar64 »
*

radius

  • Давно я тут
  • 550
  • 45 / 0
27 января 2010 года Oracle Corporation приобрела[3] Sun Microsystems и включила MySQL в свою линейку СУБД."
Я конечно ценю ваше настойчивое желание доказать что диалект PL/SQL имеет отношение к MySQL, но простите, вы обратили внимание на дату покупки Oracle? 2 месяца назад. За это время еще не вышло ни одной новой версии MySQL, таким образом Oracle не могла успеть включить этот диалект в синтаксис MySQL. Вы не можете применять все спецификации и конструкции языка PL/SQL в MySQL. Хотя раз произошла такая покупка, то понятно, что дело пойдет к объединению синтаксиса.
*

alekstar64

  • Новичок
  • 9
  • 2 / 0
Я конечно ценю ваше настойчивое желание доказать что диалект PL/SQL имеет отношение к MySQL, но простите, вы обратили внимание на дату покупки Oracle? 2 месяца назад. За это время еще не вышло ни одной новой версии MySQL, таким образом Oracle не могла успеть включить этот диалект в синтаксис MySQL. Вы не можете применять все спецификации и конструкции языка PL/SQL в MySQL. Хотя раз произошла такая покупка, то понятно, что дело пойдет к объединению синтаксиса.
я не первый начал...
добавлю!
mysql нарОстит функционал, и  сначала станет условно платным, а затем коммерческим. Oracle его купил не с целью развития :(
хочу надеяться, что в (условно)бесплатной версии останется возможность управления транзакциями и хранимые процедуры, хотелось бы еще и пакеты (package)
« Последнее редактирование: 14.04.2010, 18:14:12 от alekstar64 »
*

sokoll

  • Захожу иногда
  • 94
  • 0 / 0
прошу помощи/совета
делаю все по этому мануала один товар на тест. Стоит  j 1.15.5 vm 1.1.4 CSVI 1.8.1
Код
product_sku^category_path^product_name^product_price^product_currency^manufacturer_name^product_publish
20^ДВС^бачек^100,00^RU^Nissan^Y

после этого в админке вижу этот товар - все красиво.

Если зайти на сайт вижу
бачек - 20 4 388.85 руб.

если опять в админке зайти на этот товар и нажать применить ( без изменений) то на сайте становиться правильная цена.

(думал конвертация какая то) по умолчанию стоят рубли и закачиваются рубли.

Откуда берет он эти цифры непонятно.

пробовал импорт файл все в кавычках, цену без копеек - не помагает, проблема где-то в другом.
*

Gruz

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

sokoll

  • Захожу иногда
  • 94
  • 0 / 0
Запятая в цене может? С точкой пробовал?
Русский текст в кавычках в любом случае надо делать.
пробовал и с ценой. т.е. просто 100 , и русские буквы в кавычках.
например так 21^"ДВС"^"бачек"^200^RU^Nissan^Y
 выдал цену бачек 8 777.70 руб. 

получеется если ставишь 100 руб, выдает - 4 388.85
200 - 8 777.70
« Последнее редактирование: 13.04.2010, 08:37:07 от sokoll »
*

Gruz

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

sokoll

  • Захожу иногда
  • 94
  • 0 / 0
А посмотри ещё сколько у товара цен. Может он не в ту цену пишет?
получается это новый товар, без обновлений. Т.е. он создает полностью новую позицию
смотрю в админке
Цена товара (без налогов): 200.00000
Цена товара (с налогами): 200

Если это ошибка то как подправить?

стал щитат зависимость цифр
получается конвертация 1 руб - 43,8885 у.е.

так как при 200 он пишет 8 777.70
моэет это глюк. но где его отключить?
Гуру взываю к вам
« Последнее редактирование: 13.04.2010, 08:55:48 от sokoll »
*

Gruz

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

sokoll

  • Захожу иногда
  • 94
  • 0 / 0
Ошибка точно у тебя где-то. Сегодня может вечером гляну у себя на твоём примере. Только бы не забыть.
стал считат зависимость цифр
получается конвертация 1 руб - 43,8885 у.е.

так как при 200 он пишет 8 777.70
может это глюк. но где его отключить?

по этому есть идеи?
« Последнее редактирование: 13.04.2010, 09:07:58 от sokoll »
*

sokoll

  • Захожу иногда
  • 94
  • 0 / 0
стал считат зависимость цифр
получается конвертация 1 руб - 43,8885 у.е.

так как при 200 он пишет 8 777.70
может это глюк. но где его отключить?

по этому есть идеи?

нашел вот это
если ручками создавать товар то валюта в списке около цены RUB
если черз файл импорта то RU.
т.е. не распознает валюту отсюда косяк.
проверил теорию - все работает. Т.е. надо файл такой
20^ДВС^бачек^100,00^RUB^Nissan^Y
если это актуально для всех, подправьте мануал.

Gruz, спасибо за быстрые отзывы +1
« Последнее редактирование: 13.04.2010, 09:19:32 от sokoll »
*

elvirae

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Я думаю, что если у Вас в магазине цена только в одной валюте, то столбец product_currency можно вообще не выводить, оно и так по умолчанию все выводится замечательно.
*

tural

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
импортировались не все товары,
заметил, что не импортируются товары в артикулах которых имеются русские символы.
у меня 2000 товаров, по одному искать и менять артикулы не реально, как можно обойти?
заранее благодарю

п.с. когда экспортируешь без артикулов - импорт без артикулов - не получается.
*

Gruz

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

tural

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
заметил, что артикул тут ни при чем.

я импортирую из Joomla 1.0 м в Joomla 1.5 товары,

все дело в кодировке, если я не пересохраняю в ютф8 а импортирую в 1.5 в том виде как есть ( а она в виндовсе) то все товары показываются в первью но с ошибками, из за чего не происхожит импорт.
если же пересохраняю в ютф8 и гружу заново, то импортируется лишь половина товаров.

какой тут может быть выход, может это из за того, что в тексте есть хтмл теги и т.д. ?
*

tural

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
РћС?РёР±РєР° :: Показать/Спрятать
Строка 517: Неверный счетчик столбцов: Конфигурация : 9 поля :: Файл: 34 поля
Поля
1: product_name
2: product_price
3: product_thumb_image
4: product_full_image
5: category_path
6: product_desc
7: product_publish
8: manufacturer_name
9: product_sku
Значение:
1: ~Christian Dior - Addict shine edt 100 ml lady tester~^~46.00~^~57c80c218b3423cfe11411105175192a. jpg~^~99a0ac33891e25a9783fdd5a8071ce46.jpg~^~Же� �ские тестеры~^~В Когда она появляется
2: все как будто освещается ярким светом
3: который исходит от нее. Шлейф
4: сотканный из звезд
5: стелется за ней. Для этой ослепительной и изящной молодой девушки Christian Dior создал свой новый фруктово-цветочный аромат Dior Addict Shine. Он как легкий подвесной мост
6: соединяющий простые и сложные ароматы. Сильное звучание цитрусовых нот
7: переходит в красивую малиновую ноту сердца
8: и заворачиваясь в чувственный древесный шлейф
9: совершает интересный поворот в мир фруктовых фантазий. Невероятно чувственный
10: женственный и роскошный парфюм. Основные ноты: цедра
11: малина
12: гардения
13: древесина кедра. Время применения: для свиданий
14: дневные
15: вечерние ~^~N~^~Christian Dior~^~36216541654165~
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:

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

1C УТ 8.x <-> VirtueMart по протоколу CommerceML

Автор Centoff

Ответов: 1315
Просмотров: 215163
Последний ответ 27.10.2020, 15:32:10
от Leo1986
Импорт из CSV товаров с типами и свойствами из

Автор Gruz

Ответов: 499
Просмотров: 151047
Последний ответ 23.02.2017, 15:15:42
от orchanin
Как импортировать файл XML в Joomla VirtueMart?

Автор Кот Смюлан

Ответов: 2
Просмотров: 5186
Последний ответ 14.07.2016, 18:40:24
от Berzerker
импорт товаров в YML Яндекс маркет

Автор zmeyx

Ответов: 5
Просмотров: 11481
Последний ответ 14.07.2016, 18:34:28
от Berzerker
Скрипт экспорта товаров в Яндекс маркет (yml)

Автор gaalferov

Ответов: 12
Просмотров: 11796
Последний ответ 08.06.2016, 14:02:27
от DimaXP