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

Pavel.Br

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1200 : 21.06.2014, 12:20:25 »
Pavel.Br Вы здесь впервые и видимо спутали тему.
Вам сюда.
Спасибо, да, более подходящий раздел.
Просто Яндекс выводит сюда, да и другое коммерческое предложение уже здесь пролетало - http://joomlaforum.ru/index.php/topic,175325.msg1451658.html#msg1451658 и никто слова не сказал.
*

DlMON

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1201 : 24.06.2014, 15:42:11 »
Если используется несколько типов цен, то в данном решении выгрузится какая-то одна, любая цена...
Я ничего умнее, чем очищать данные таблицы virtuemart_product_prices, не придумал...
Перед началом функции function createOffers вставил код:
Код
	$query = "TRUNCATE TABLE `#__".virtuemart_product_prices."`";
$db->setQuery($query);
if ($db->query ())
{
$log->addEntry ( array ('comment' => 'Этап 4.2.3) Успешная очистка данных таблицы virtuemart_product_prices') );
}
else
{
$log->addEntry ( array ('comment' => 'Этап 4.2.3) Невозможно очистить данные таблицы virtuemart_product_prices') );
}
*

denwwwru

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1202 : 25.06.2014, 19:09:48 »
создаю интетнет магазин на Joomla! 2.5.22+Virtuemart 2.0.10. Нужно данные и остатки загружать из 1С v8 розница.Может ли делать это Ваш скрипт? Скиньте пожалуйста скрипт и инструкцию к нему
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1203 : 26.06.2014, 16:23:05 »
создаю интетнет магазин на Joomla! 2.5.22+Virtuemart 2.0.10. Нужно данные и остатки загружать из 1С v8 розница.Может ли делать это Ваш скрипт? Скиньте пожалуйста скрипт и инструкцию к нему
https://yadi.sk/d/amgOGaiyUz2Le
*

denwwwru

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1204 : 27.06.2014, 09:14:49 »
спасибо мир не без добрых людей
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1205 : 27.06.2014, 18:11:33 »
спасибо мир не без добрых людей
Теперь читай форум и переделовай скрипт под себя в зависимости от ошибок это оригинальный скрипт без переделок с форума в топике поста
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1206 : 27.06.2014, 18:16:45 »
Может DlMON выложит свою версию скрипта с убранными багами
*

fov

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

denwwwru

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1208 : 27.06.2014, 20:02:01 »
спасибо, скрипт не понадобился
*

dinamos

  • Новичок
  • 7
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1209 : 15.07.2014, 10:24:57 »
Коллеги, кто подскажет как сделать, чтобы в товары не проставлялась по умолчанию группа покупателей из 1с
*

DlMON

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1210 : 17.07.2014, 22:56:38 »
Коллеги, кто подскажет как сделать, чтобы в товары не проставлялась по умолчанию группа покупателей из 1с
Не совсем понятно, в чем именно у вас проблема? Без группы покупателей магазин не будет работать.
Хотя бы одна группа должна быть... Если групп несколько, тогда при выгрузке, вы можете прописать в конфиге группу по умолчанию в параметре VM_DEF_CASHGR
*

Sanyo

  • Захожу иногда
  • 127
  • 11 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1211 : 18.07.2014, 11:23:14 »
Поделитесь последней стабильной версией, а то сайт не доступен, скачать не где
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1212 : 24.07.2014, 20:15:00 »
Поделитесь последней стабильной версией, а то сайт не доступен, скачать не где
Ссылка каторуя я кидал рабочая скачено с сайта в топе.
https://yadi.sk/d/amgOGaiyUz2Le
*

fov

  • Захожу иногда
  • 84
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1213 : 15.08.2014, 19:53:46 »
DlMON ну как успехи ? Не поделишся результатом?
*

dinamos

  • Новичок
  • 7
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1214 : 18.08.2014, 18:00:19 »
Кто подскажет как убрать из названия категорий "cid_"
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1215 : 18.08.2014, 21:23:18 »
Кто подскажет как убрать из названия категорий "cid_"
В файле category.php поищите. У меня уже измененный файл.
Если скинете свой, покажу как изменить.
*

dinamos

  • Новичок
  • 7
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1216 : 18.08.2014, 21:48:41 »
В файле category.php поищите. У меня уже измененный файл.
Если скинете свой, покажу как изменить.
Спойлер
[свернуть]
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1217 : 18.08.2014, 22:04:23 »
Там в четырех местах нужно удалить ("_cid_".)
Это позволит убрать cid в урлах категорий.
Если ещё нужно убрать и в урлах товаров, то то же самое проделать с файлом product.php
*

dinamos

  • Новичок
  • 7
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1218 : 18.08.2014, 22:16:39 »
Там в четырех местах нужно удалить ("_cid_".)
Это позволит убрать cid в урлах категорий.
Если ещё нужно убрать и в урлах товаров, то то же самое проделать с файлом product.php

А как именно удалить? Не скинете измененный файл?
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1219 : 18.08.2014, 23:12:32 »
Пожалуйста.
Спойлер
[свернуть]
*

Amigo1985

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1220 : 19.08.2014, 00:54:53 »
Доброй ночи!
Ребята, помогите, 2 недели бьюсь над авторизацией через 1С.
Ситуация такая, была связка
Joomla 1.5.25 + VirtueMart 1.1.4 + 1C Управление торговлей 10.3.21 + обновление для Битрикс.
Все это работало на хостинге TimeWeb. На данный момент перешел к другому хостингу Beget.
На Beget не могу авторизацию пройти.

Логи с сервака
   -   Скрипт адптации 1С и магазина VirtueMart версии: 2.0.8e Релиз: MINOR, версия скрипта: 2.0.9, обнуление базы перед выгрузкой: yes, выгрузка архивом: yes
   -   Этап 1) Авторизация на сервере
   -   Этап 1) Не введен логин и пароль
Что пишет 1С - "Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль."
Пароль и юзера ввожу правильно (работало на старой связке)
Пересмотрел все посты в данной теме, но почему то мне ничего не помогает.
Подскажите пожалуйста, может кто сталкивался с данной ситуацией.
Забыл добавить, поставил чистую базу 1с + чистую базу Joomla 1.5.25 + VirtueMart 1.1.9 + скрипт 2.0.9 - все равно не проходит авторизацию.
Поддержка хостинга проблемы моей понять не может.
Да, если пробовать через браузер запустить файл vmshop_1c.php, то браузер выдает success\n
« Последнее редактирование: 19.08.2014, 00:57:58 от Amigo1985 »
*

DlMON

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1221 : 19.08.2014, 10:42:30 »
Первое что приходит в голову, это:
1. Проверь права на папку logs, должно быть 777
2. Сделай копию своего .htaccess файла. Удали все содержимое своего .htaccess и оставь только две строки:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

3. сравни настройки на новом и старом хостинге, а именно как выполняются скрипты PHP (как  CGI или Apache)

Что-то одно из трех пунктов по логике должно помочь ;) Результаты в аудиторию пожалуйста... Так сказать, для пополнения базы знаний.
*

DlMON

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1222 : 19.08.2014, 10:49:12 »
DlMON ну как успехи ? Не поделишся результатом?
Я так и не допилил выгрузку доп. характеристик, через настраиваемые поля VirtueMart.
Появился другой срочный проект. Пришлось наспех прикрутить CherryPiker на сайт и настроить фильтры на сайте.
А пока данной выгрузки нет, считать скрипт полностью рабочим нельзя.
И есть еще одна ошибка, которую еще не поборол...
Как только разгружусь чуток, продолжу работу на скриптом. Результатом поделюсь обязательно!
*

DlMON

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1223 : 19.08.2014, 10:50:47 »
Доброй ночи!
Ребята, помогите, 2 недели бьюсь над авторизацией через 1С.
...

Первое что приходит в голову, это:
1. Проверь права на папку logs, должно быть 777
2. Сделай копию своего .htaccess файла. Удали все содержимое своего .htaccess и оставь только две строки:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

3. сравни настройки на новом и старом хостинге, а именно как выполняются скрипты PHP (как  CGI или Apache)

Что-то одно из трех пунктов по логике должно помочь Wink Результаты в аудиторию пожалуйста... Так сказать, для пополнения базы знаний.
*

dinamos

  • Новичок
  • 7
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1224 : 19.08.2014, 12:54:23 »
не запустилось..
Parse error: syntax error, unexpected ''."'' (T_CONSTANT_ENCAPSED_STRING) in /home/srv44920/htdocs/components/com_virtuemart/1cexport/system/category.php on line 259


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

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1225 : 19.08.2014, 15:01:11 »
Измените в 259 строке
`slug` = '".$slug'
на
`slug` = '".$slug."'
*

dinamos

  • Новичок
  • 7
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1226 : 19.08.2014, 16:02:42 »
Что то не выходит.. может скинете в личку свою версию?
Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Ответ сервера:
error MySQL

Измените в 259 строке
`slug` = '".$slug'
на
`slug` = '".$slug."'
*

Autocom

  • Захожу иногда
  • 306
  • 3 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1227 : 19.08.2014, 16:24:58 »
Пишет:  ошибка MySQL
Попробуйте очистить таблицы в MySQL и сделать выгрузку заново.
Очищать нужно 12 таблиц для VirtueMart 2.0 и новее.
У вас 1.1. скорее всего так же.
Таблицы категорий, медиа, цен и продуктов. Где-то раньше я уже перечислял их в этой теме.
*

dinamos

  • Новичок
  • 7
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1228 : 19.08.2014, 22:14:17 »
странно, если возвращаю "cid" , то ошибка не выскакивает, и все выгружается.. но с теми же хвостами на концах категорий..


Пишет:  ошибка MySQL
Попробуйте очистить таблицы в MySQL и сделать выгрузку заново.
Очищать нужно 12 таблиц для VirtueMart 2.0 и новее.
У вас 1.1. скорее всего так же.
Таблицы категорий, медиа, цен и продуктов. Где-то раньше я уже перечислял их в этой теме.
*

Amigo1985

  • Новичок
  • 3
  • 0 / 0
Re: 1C УТ 8.x <-> VirtueMart по протоколу CommerceML
« Ответ #1229 : 20.08.2014, 00:42:39 »
Первое что приходит в голову, это:
1. Проверь права на папку logs, должно быть 777
2. Сделай копию своего .htaccess файла. Удали все содержимое своего .htaccess и оставь только две строки:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

3. сравни настройки на новом и старом хостинге, а именно как выполняются скрипты PHP (как  CGI или Apache)

Что-то одно из трех пунктов по логике должно помочь Wink Результаты в аудиторию пожалуйста... Так сказать, для пополнения базы знаний.
При изменении прав на папку logs на 777 - файл лог пишет:
#Fields: date   time   level   c-ip   status   comment
#Software: Joomla! 1.5.25 Stable [ senu takaa ama mamni ] 14-November-2011 18:00 GMT
2014-08-19   20:35:00   -   93.100.46.158   -   Скрипт адптации 1С и магазина VirtueMart версии: 1.1.4 Релиз: stable, версия скрипта: 2.0.9, обнуление базы перед выгрузкой: no, выгрузка архивом: yes
2014-08-19   20:35:00   -   93.100.46.158   -   Этап 1) Авторизация на сервере
2014-08-19   20:35:00   -   93.100.46.158   -   Этап 1) Успешно
Но 1с пишет "Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль."
По поводу как выполняются скрипты PHP (как  CGI или Apache) написал хостеру, так как сам еще не понял как это можно посмотреть или проверить. Ответ хостера: "PHP как cgi будет работать в том случае, если Вы меняли версию PHP, т.е. на любой другой, отличной от версии PHP, установленной по умолчанию. То есть, Вам необходимо установить версию PHP по умолчанию, т.е. 5.4, если Вы хотите, что она работала как модуль Апача." Версия php стоит 5,4 как советует хостер.
Подскажите пожалуйста как можно убедиться в том что хостер говорит правду, т.е. проверить как работают скрипты php?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как импортировать файл 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