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

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #960 : 23.04.2013, 19:47:33 »
Все вышеуказанные проблемы решены остались только 2 это
1. при выгрузке не выгружаются цены
2. не создаются группы точнее удаляются существующие
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #961 : 23.04.2013, 20:20:45 »
1. при выгрузке не выгружаются цены
Цены вообще не выгружаются, или не показываются?
Возможно не задано в 1С какие цены выгружать?
2. не создаются группы точнее удаляются существующие
С этим у самого проблема.
Существующие удаляются и создается новая из 1С.
Но она не прописывается зарегистрированным юзерам и они цены не видят.
Незарегистрированные цены видят. Приходится делать дополнительный запрос в базу для зарегистрированных юзеров.
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #962 : 24.04.2013, 07:53:57 »
Цены вообще не выгружаются, или не показываются?
Возможно не задано в 1С какие цены выгружать?С этим у самого проблема.
Существующие удаляются и создается новая из 1С.
Но она не прописывается зарегистрированным юзерам и они цены не видят.
Незарегистрированные цены видят. Приходится делать дополнительный запрос в базу для зарегистрированных юзеров.
В обще не выгружаются. В 1с только 1 цена (vm пишит нет цены)
Просто тупо удаляет группы и все не создает как в 1с после выгрузки приходится каждый раз создавать группы и делать обновление таблиц
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #963 : 24.04.2013, 13:39:43 »
Это import.xml

Спойлер
[свернуть]
« Последнее редактирование: 24.04.2013, 14:37:38 от fov »
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #964 : 24.04.2013, 14:38:38 »
Лог с сайта

Спойлер
[свернуть]
« Последнее редактирование: 29.05.2013, 10:06:15 от fov »
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #965 : 24.04.2013, 14:39:08 »
Лог из 1с

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

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #966 : 24.04.2013, 14:45:23 »

Возможно не задано в 1С какие цены выгружать?

Не видил такого параметра в выгрузке. Где это настраивается ?
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #967 : 24.04.2013, 20:18:35 »
После танцем с бубном получил во такой лог
Спойлер
[свернуть]
« Последнее редактирование: 29.05.2013, 10:04:49 от fov »
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #968 : 25.04.2013, 13:55:42 »
Этап 4.2.3) Неудача: Невозможно вставить запись в таблицу - vm_product_price
Этап 4.2.4) Все цены добавленны (обновленны)

странно такой таблицы вобще в MySQL нет
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #969 : 25.04.2013, 14:16:42 »
Люди здесь кто нибуть бывают вобще тема то актуальная много кому нужно
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #970 : 25.04.2013, 15:44:27 »
в 1с вот такую ошибку выдает
25.04.2013 14:30:00 Выгрузка на сайт завершилась с ошибками.
offers.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Ответ сервера:
failure\nerror mysql\n
25.04.2013 14:30:00 Завершена выгрузка товаров
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #971 : 25.04.2013, 22:11:40 »
Сам с собою я веду беседу
*

Devil2k3

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #972 : 28.04.2013, 20:13:53 »
День добрый а как решили проблему с этапом 4.1.2 ?? поделитесь решением... !
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #973 : 29.04.2013, 07:07:31 »
День добрый а как решили проблему с этапом 4.1.2 ?? поделитесь решением... !
если не создаются категории то нудно в файле components/com_virtuemart/1cexport/checkver.php 29 строка
заненить на на эту строчку где or $sh_version == "2020b") твоя версия магазина

if ((($sh_version >= "200" and $sh_version <= "299") and $version != "2.0.0-RC-2M" and $version_status == "Final") or $sh_version == "2020b")
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #974 : 30.04.2013, 14:13:37 »
Проблема с ценами решина тестирую остальные
*

Petrenko

  • Новичок
  • 1
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #975 : 02.05.2013, 18:12:32 »
Здравствуйте!
Помогите пожалуйста советом!

Как сделать что бы вместо категорий, сразу показывался каталог товаров??

http://monster-hi.ru/

Сейчас что бы посмотреть каталог товаров нужно нажить на "игрушки" (внизу).
*

Newageman

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #976 : 02.05.2013, 23:10:34 »
Как сделать что бы вместо категорий, сразу показывался каталог товаров??
Создай новый пункт меню.
выбери тип пункта меню. В твоем случае это VirtueMart КатегориЯ.
В обязательных параметрах (справа) выбери категорию игрушки.
Показываться будут товары из этой категории без выбора самой категории.
« Последнее редактирование: 07.05.2013, 00:13:20 от Newageman »
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #977 : 03.05.2013, 19:06:16 »
Просто Огромное  спасибо автору за такой скрипт единственное бесплатное решение для интеграции с 1с без использование FTP
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #978 : 06.05.2013, 20:50:11 »
Может кто нибудь знает как сделать чтоб показывалось покупателю сколько товаров есть в наличии 
*

Newageman

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #979 : 07.05.2013, 00:12:16 »
На VirtueMart 1.... до 2(не включая) надо было вставить в то место кода шаблона где хочешь показывать количество <?php echo $product_in_stock ?>.
На VM2 не испытывал.
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #980 : 08.05.2013, 22:51:44 »
На VirtueMart 1.... до 2(не включая) надо было вставить в то место кода шаблона где хочешь показывать количество <?php echo $product_in_stock ?>.
На VM2 не испытывал.
Попробую кончено но что то на каждой страницы с товаром код вставлять не очень хочется
*

Newageman

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #981 : 08.05.2013, 23:34:25 »
Попробую кончено но что то на каждой страницы с товаром код вставлять не очень хочется
Зачем же в каждой странице?
В шаблоне вывода товара или категории VirtueMart надо вставить этот код.
И будет Вам счастье с показом количества во всех товарах.
У меня бы руки отсохли и клавиши отвалились если бы я в каждой странице товара это делал (кстати, на сайте товаров 5к+)
*

Devil2k3

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #982 : 10.05.2013, 21:14:40 »
Спасибо за совет! хотя сам просто убрал проверку на версию и все  оставил только строки 31,32,35 товар вроде загрузился и категории а вот с ценами беда 3тий день мучаюсь... Как победили?
*

Devil2k3

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #983 : 11.05.2013, 18:59:35 »
Всем Спасибо! нашел все ответы ... правда пришлось еще на раз перечитать 30 страниц на первый раз пропустил умную мысль!
*

Alex2

  • Захожу иногда
  • 113
  • 6 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #984 : 12.05.2013, 16:39:36 »
Вопрос снят
« Последнее редактирование: 12.05.2013, 17:50:49 от Alex2 »
*

neGODnic

  • Захожу иногда
  • 140
  • 4 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #985 : 23.05.2013, 16:09:42 »
Подскажите как исправить скрипт checkauth.php и htaccess.txt если на хостинге модуль PHP стоит как CGI.
И соответственно HTTP авторизация прописанная в данном скрипте не проходит.
Спасибо.

точно такаяже проблема... не проходит авторизацию не через 1с, не напрямую через фаил.
Помогите как решить?

перевел в режим php-apache

вот такое теперь при прямом заходе.

Код
Warning: fopen(/var/www/admin/data/www/vegass.ru/log/vmshop_1c_13_05_23_16_37.log.php) [function.fopen]: failed to open stream: Permission denied in /var/www/admin/data/www/vegass.ru/libraries/joomla/log/loggers/formattedtext.php on line 248

Warning: fputs() expects parameter 1 to be resource, boolean given in /var/www/admin/data/www/vegass.ru/libraries/joomla/log/loggers/formattedtext.php on line 254

Fatal error: Uncaught exception 'LogException' in /var/www/admin/data/www/vegass.ru/libraries/joomla/log/loggers/formattedtext.php:256 Stack trace: #0 /var/www/admin/data/www/vegass.ru/libraries/joomla/log/loggers/formattedtext.php(137): JLoggerFormattedText->initFile() #1 /var/www/admin/data/www/vegass.ru/libraries/joomla/log/log.php(382): JLoggerFormattedText->addEntry(Object(JLogEntry)) #2 /var/www/admin/data/www/vegass.ru/libraries/joomla/log/log.php(346): JLog->addLogEntry(Object(JLogEntry)) #3 /var/www/admin/data/www/vegass.ru/vmshop_1c.php(169): JLog->addEntry(Array) #4 {main} thrown in /var/www/admin/data/www/vegass.ru/libraries/joomla/log/loggers/formattedtext.php on line 256

установил права на папку logs - 777 все заработало.
« Последнее редактирование: 23.05.2013, 16:41:40 от neGODnic »
*

alaponicin

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #986 : 24.05.2013, 12:16:18 »
Подскажите разработка скрипта прекратилась или нет?
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #987 : 27.05.2013, 18:04:31 »
Подскажите разработка скрипта прекратилась или нет?
я так понимаю допиливают сами под свои нужды если что нужно подскажу что знаю
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #988 : 27.05.2013, 18:07:07 »
нашел неприятный баг если сбросить магазин в дефоли то скрипт не работает пишит ошибку в 25 и 26 строке checkauth.php
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #989 : 27.05.2013, 20:07:32 »
и еще воросик из 1 с не выгружает производителей кто подскажет
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

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

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

Автор danklassik

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

Автор fedorkit

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

Автор zufar

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

Автор EmDmAl

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