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

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #540 : 16.05.2012, 13:30:34 »
Но удаляет, не создавая ничего!
Сам создал, теперь не удаляет вроде.
(удалено, т.к. не проблема)
« Последнее редактирование: 16.05.2012, 14:00:42 от Autocom »
*

fenixnow

  • Захожу иногда
  • 89
  • 2 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #541 : 16.05.2012, 13:34:20 »
а в чем проблема? это довольно легко реализовать.
Для своих нужнд я поправил скрипт
*

nikonor

  • Давно я тут
  • 513
  • 56 / 0
  • Content Grabber
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #542 : 17.05.2012, 00:52:41 »
Версия скрипта 2.0.8
VM 1.1.9
Работало все примерно неделю нормально, а теперь вот такие ошибки
Спойлер
[свернуть]
по указанным строкам с ошибками в import.xml находится вот это

Код: xml
</КоммерческаяИнформация><?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2012-05-17T00:24:34">
символ &#65279; виден только здесь, открыв файл в Notepad++ я его не вижу (это вроде пробел в utf-8)

Обновление до 2.0.9 ничего не дало

И еще: пути к уменьшенным изображениям получаются неверными, неn слэша после resized ... то есть путь примерно выглядит так: images/resizedImagename.jpg
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #543 : 17.05.2012, 09:07:22 »
1C не обновляли?

Дело в том, что ошибка пошла от этого символа, вот вопрос откуда он пошел?

Обновился с 2.0.8 на последнюю версию.
Почему при каждой выгрузке удаляет группы покупателей?
Пришлось откатиться пока.
Попробовал даже на чистые Joomla и VirtueMart выгрузить, тоже самое: удаляет группы покупателей.
В чем причина?


В следующей версии исправлю!
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

minuby

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #544 : 17.05.2012, 09:58:43 »
по поводу характеристик в украинской версии:
версия последняя. Для товара есть характеристика "Колір" и несколько значений. Выгружает на сайт только последнее значение. Из скрипта вижу
Код
id= 0 Массив характеристики в продукт: - Червоний
2012-05-17 05:54:44 INFO 31.43.244.25 - id= 1 Массив характеристики в продукт: - Червоний
2012-05-17 05:54:44 INFO 31.43.244.25 - id= 2 Массив характеристики в продукт: - Червоний
2012-05-17 05:54:44 INFO 31.43.244.25 - id= 3 Массив характеристики в продукт: - Червоний
2012-05-17 05:54:44 INFO 31.43.244.25 - Изображение:import_files/4b/4bf3072a-f0ec-11e0-aa9f-0015f260b19b.jpeg
2012-05-17 05:54:44 INFO 31.43.244.25 - id= 0 Массив характеристики в продукт: - Білий
2012-05-17 05:54:44 INFO 31.43.244.25 - id= 1 Массив характеристики в продукт: - Білий
2012-05-17 05:54:44 INFO 31.43.244.25 - id= 2 Массив характеристики в продукт: - Білий
2012-05-17 05:54:44 INFO 31.43.244.25 - id= 3 Массив характеристики в продукт: - Білий
добавил просто вывод в лог массива. И вот, как с этим бороться?
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #545 : 17.05.2012, 13:35:35 »
Это пока еще не реализовал, как сделаю, обновлю!
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

minuby

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #546 : 17.05.2012, 13:43:23 »
Это пока еще не реализовал, как сделаю, обновлю!
только пожалуйста сообщите как обновите) спасибо)
*

nikonor

  • Давно я тут
  • 513
  • 56 / 0
  • Content Grabber
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #547 : 18.05.2012, 00:22:00 »
1C не обновляли?

Дело в том, что ошибка пошла от этого символа, вот вопрос откуда он пошел?
Ничего не обновляли. Странность еще и в том что два раза из десяти выгрузка может пройти нормально.
Может можно как-то перед парсингом XML это дело выпилить оттуда прямо в import_xml.php допустим?
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #548 : 18.05.2012, 10:37:01 »
Ничего не обновляли. Странность еще и в том что два раза из десяти выгрузка может пройти нормально.
Может можно как-то перед парсингом XML это дело выпилить оттуда прямо в import_xml.php допустим?

Можно попробовать! отпишусь
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #549 : 18.05.2012, 10:41:25 »
стоп, можешь скинуть этот XML? возник вопрос, как в одной XML получилось два дерева?
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

nikonor

  • Давно я тут
  • 513
  • 56 / 0
  • Content Grabber
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #550 : 18.05.2012, 11:16:12 »
скинул ссылку в личку .... там даже не два дерева бывает, а больше ... возможно конкатенация происходит из-за того, что программист делал что-то, чтоб выгрузка была по категориям в соответствии с сайтом.
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #551 : 18.05.2012, 11:43:35 »
Так и есть, но в этом изменении есть ошибка - нет закрытия тега XML, на что скрипт и ругается, не может найти конец XML. а символ этот в dreamweaver виден как точка сверху! Попросите сисадмина (программиста) поправить модуль выгрузки. Тег XML не закрывается нигде по всей выгрузке!
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

LEOPOLD

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #552 : 19.05.2012, 15:48:11 »
День добрый. Вопрос: выгрузка проходит на Ура, а вот загрузка заканчивается не начавшись: "Не удалось прочитать данные, загруженные с сервера.
Обмен не выполнен
Не выгружен ни один заказ.
Обмен заказами завершен с ошибками!"
Скрипт: 2.0.9
1C: УТ 10.3.18.3
в логах на сервере пишет что все OK файл сформирован.

И еще по загрузке: Есть ли возможность скрыть главную категорию (у меня товар выгружаемый в отдельной группе справочника)
« Последнее редактирование: 19.05.2012, 15:54:51 от LEOPOLD »
*

kolyan-xerox

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #553 : 21.05.2012, 08:17:55 »
Здрасти :) Модуль просто супер, но есть одно не получается выгрузить из 1с сразу две валюты, как это победить? Пробовал в настройке обмена поставить две валюты не помогло.
« Последнее редактирование: 21.05.2012, 08:50:57 от kolyan-xerox »
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #554 : 21.05.2012, 09:11:54 »
Здрасти :) Модуль просто супер, но есть одно не получается выгрузить из 1с сразу две валюты, как это победить? Пробовал в настройке обмена поставить две валюты не помогло.


Скинте пример выгрузки (xml) в личку!

День добрый. Вопрос: выгрузка проходит на Ура, а вот загрузка заканчивается не начавшись: "Не удалось прочитать данные, загруженные с сервера.
Обмен не выполнен
Не выгружен ни один заказ.
Обмен заказами завершен с ошибками!"
Скрипт: 2.0.9
1C: УТ 10.3.18.3
в логах на сервере пишет что все OK файл сформирован.

И еще по загрузке: Есть ли возможность скрыть главную категорию (у меня товар выгружаемый в отдельной группе справочника)

Лог на обозрение! так тяжело что-то судить и проверьте лог ошибок СЕРВЕРА!
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

kolyan-xerox

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #555 : 21.05.2012, 11:14:50 »
Centoff отправил письмом :)
*

Newageman

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #556 : 21.05.2012, 13:00:06 »
Моя проблема с показом товаров незарегистрированным так и осталась не решенной.(
Теперь появилась другая. Выгрузка не проходит на сервере.
Лог 1с.
Спойлер
[свернуть]
Кусок лога сервера ниже.
Спойлер
[свернуть]
И вот эта надпись: Нет данных по продукту id - 0 повторяется столько раз сколько продуктов. Не могу понять где этот id-0 искать.

Спасибо вам огромное за вашу работу.
*

neexon

  • Осваиваюсь на форуме
  • 21
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #557 : 21.05.2012, 13:07:22 »
Подскажите, не могу понять как это победить...

Выгружено товаров: 170
Выгружено картинок: 35
Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:\WINDOWS\Temp\v8_7_74.zip).
Обмен не выполнен
Ответ сервера:
Warning: scandir(/var/www/components/com_virtuemart/shop_image/product/): failed to open dir: No such file or directory in /var/www/components/com_virtuemart/1cexport/file.php on line 64

Warning: scandir(): (errno 2): No such file or directory in /var/www/components/com_virtuemart/1cexport/file.php on line 64

Warning: Invalid argument supplied for foreach() in /var/www/components/com_virtuemart/1cexport/file.php on line 65

Warning: fopen(/var/www/components/com_virtuemart/shop_image/product/v8_7_74.zip): failed to open stream: No such file or directory in /var/www/components/com_virtuemart/1cexport/file.php on line 88
failure
Can not open file: /var/www/components/com_virtuemart/shop_image/product/v8_7_74.zip
/var/www/components/com_virtuemart/shop_image/product/

Выгрузка товаров завершена с ошибками!
Не выгружен ни один заказ.
*

minuby

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #558 : 21.05.2012, 13:41:14 »
версию Joomla вероятно неправильно определяет.
*

gresstat

  • Новичок
  • 2
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #559 : 21.05.2012, 15:22:38 »
ошибка set_time_limit() has been disabled for security reasons

vm 2.0.6, Joomla 2.5.4, 1C 8,2 УТ 11.
« Последнее редактирование: 21.05.2012, 15:29:13 от gresstat »
*

kolyan-xerox

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #560 : 22.05.2012, 04:03:49 »
В offers.xml отображает валюту, нужно ее выгружать тоже
Спойлер
[свернуть]
*

kolyan-xerox

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #561 : 22.05.2012, 06:55:15 »
Свою проблему я решил :)
Начал копать в файле offers.php и понял то что он при сравнивании валюты, из-за того что она не совпадает ставит по умолчанию, ту которую указал в магазине. И не важно, в каких была выгрузка, применялась только стоящая по умолчанию.
Решил ее очень просто. В настройках магазина в "списке валют" указал вместо RUB валюту руб. В "Список допустимых валют" те которые мне нужны.
« Последнее редактирование: 22.05.2012, 06:59:08 от kolyan-xerox »
*

kolyan-xerox

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #562 : 22.05.2012, 08:26:54 »
хотя я рано обрадовался, проверил только usd, а рубль не проверил. умножает все на курс.
какая-то проблема в offers.php. так как созданный offers.xml правильный
*

kolyan-xerox

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #563 : 22.05.2012, 09:52:00 »
Для себя поправил фаил offers.php

До:

Спойлер
[свернуть]

После
Спойлер
[свернуть]
*

al-x-k

  • Новичок
  • 3
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #564 : 22.05.2012, 11:56:14 »
Выгрузка работает, но немного напрягает, что каждый раз обнуляются таблицы и приходится вручную редактировать структуру.
Без обнуления таблиц выгрузка завершается с ошибками.
Спойлер
[свернуть]
Предполагаю из-за того, что в VM id=18, а в 1С код товара 101587
Как установить, чтоб id товара присваивалось из кода 1С?
« Последнее редактирование: 22.05.2012, 13:35:34 от al-x-k »
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #565 : 22.05.2012, 13:47:39 »
Для себя поправил фаил offers.php

До:

Спойлер
[свернуть]

После
Спойлер
[свернуть]

Это будет реализовано далее!

Выгрузка работает, но немного напрягает, что каждый раз обнуляются таблицы и приходится вручную редактировать структуру.
Без обнуления таблиц выгрузка завершается с ошибками.
Спойлер
[свернуть]
Предполагаю из-за того, что в VM id=18, а в 1С код товара 101587
Как установить, чтоб id товара присваивалось из кода 1С?
это не из-за совпадений id, надо копать есть ли такой id в базе и что с ним не то, т.к. твой запрос в моей базе прошел без ошибок!

ошибка set_time_limit() has been disabled for security reasons

vm 2.0.6, Joomla 2.5.4, 1C 8,2 УТ 11.

Закоментируй эту строку в vmshop_1c.php
set_time_limit (0);
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

kolyan-xerox

  • Осваиваюсь на форуме
  • 35
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #566 : 22.05.2012, 14:03:22 »
то есть будет прописано в настройках выбор валют которые будут выгружаться?

после моей правки в offers.php все выгружается на ура :)
*

fenixnow

  • Захожу иногда
  • 89
  • 2 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #567 : 22.05.2012, 14:20:53 »
а после твоих правок еврики выгружаться будут? :)
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #568 : 22.05.2012, 15:36:12 »
Готово обновление!

Выкладываю rev4! Скоро выпущу версию 2.1.0

-Добавленный USD
-Исправлена выгрузка изменений
-Убраны мелкие ошибки

rev4 содержит полный пакет, т.е. это не обновление а полный скрипт!

[вложение удалено Администратором]
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
*

Centoff

  • Захожу иногда
  • 244
  • 16 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #569 : 22.05.2012, 15:37:03 »
то есть будет прописано в настройках выбор валют которые будут выгружаться?

после моей правки в offers.php все выгружается на ура :)

Это не понадобится, скрипт сам увидит твою валюту!
Разработка приложения для выгрузки товаров из 1С в VirtueMart по протоколу CommerceML (fromrus.su:3001) а так же на этом форуме в разделе "Расширения Joomla -> VirtueMart"
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как импортировать файл XML в Joomla VirtueMart?

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

Ответов: 2
Просмотров: 5183
Последний ответ 14.07.2016, 18:40:24
от Berzerker
Обсуждение бесплатного компонента импорта-экспорта товаров VirtueMart "CSV Improved 1.9"

Автор danklassik

Ответов: 14
Просмотров: 17295
Последний ответ 18.02.2016, 10:21:33
от Storm
Перенос товаров с сайта на сайт (оба на joomla+virtuemart)

Автор fedorkit

Ответов: 8
Просмотров: 14309
Последний ответ 31.01.2016, 22:09:30
от Messir
VirtueMart 1.1.3 stable - выгрузка товаров в яндекс.маркет

Автор zufar

Ответов: 690
Просмотров: 172750
Последний ответ 05.02.2015, 16:39:22
от newjey
Описание полей таблиц в базе данных VirtueMart

Автор EmDmAl

Ответов: 39
Просмотров: 39803
Последний ответ 30.01.2015, 16:15:38
от nick71