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

adverte

  • Новичок
  • 7
  • 0 / 0
Итак решение найдено. Если вы импортируете данные в кодировке UTF-8, то в файл administrator/components/com_csvimproved/helpers/csvi_class_file.php вставляем перед строкой 376 строку:

setlocale(LC_CTYPE, "ru_RU.UTF-8");

(для версии CSVI 1.8.1)
И больше никаких кавычек :)

вот тут ты писал полнее доработку http://joomlaforum.ru/index.php?topic=80353.0
сделал по этой ссылке, всё работает, данные готовлю в Excel, им же сохраняю в csv.
*

zyklon

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
ребята подскажите такой момент. я импортирую 10 товаров.
они заливаются с id допустим от 1 до 10.
Затем я импортирую тотже файл с обновлёнными ценами, в виртуемарте тупо добавляется такой же точно товар только с другими id.
теперь у меня товар с id от 1 до 20.
в шаблоне csv галочка Overwrite existing data стоит.
помогите решить проблемку?
*

zyklon

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Кто понял мою проблему?
Плиз отзовитесь, очень нужна помошь!

ребята подскажите такой момент. я импортирую 10 товаров.
они заливаются с id допустим от 1 до 10.
Затем я импортирую тотже файл с обновлёнными ценами, в виртуемарте тупо добавляется такой же точно товар только с другими id.
теперь у меня товар с id от 1 до 20.
в шаблоне csv галочка Overwrite existing data стоит.
помогите решить проблемку?

из поста не понятно, что за id.
добавь поле product_sku и будет тебе счастье :)
*

zyklon

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
в виртуемарте если выбрать список товаров то product_sku это артикул. ID это номер товара по порядку, он в конце.

[вложение удалено Администратором]
*

radius

  • Давно я тут
  • 550
  • 45 / 0
Ну и используйте артикул для обновления товара
*

vovchenski

  • Новичок
  • 4
  • 0 / 0
При импорте CSV появляется руб.1 400 и Вы экономите:  - короче говоря скидка. Убирается только через редактор товара, как при импорте задать чтобы её изначально небыло !?
*

zyklon

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

[вложение удалено Администратором]
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Если артикул присвоен товару и записан в шаблоне импорта, то обязан перезаписать.
*

Erepb

  • Осваиваюсь на форуме
  • 44
  • 4 / 0
При импорте CSV появляется руб.1 400 и Вы экономите:  - короче говоря скидка. Убирается только через редактор товара, как при импорте задать чтобы её изначально небыло !?

Тоже немного повозился с этим вопросом и решил для себя при импорте товаров очищать поля БД, которые связаны со скидками. Там каждому типу скидки (хранятся в jos_vm_product_discount) тоже присваивается свой номер, а уж потом этот номер вписывается в поле product_discount_id товара. В шаблоне CSV колонку product_discount_id выставляю по умолчанию NULL и путаницы не возникает. Способов можно придумать еще много, но мне пока хватает этого.
*

vovchenski

  • Новичок
  • 4
  • 0 / 0
Erepb: Помогло, жутко благодарен.
*

iglz

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Почему при нажатии CSV Import/Export меня перебрасывает на сайт http://www.csvimproved.com/downloads/, хотя компонент CSV Improved установлен
*

iglz

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
*

TrOn

  • Захожу иногда
  • 91
  • 0 / 0
Имею сайт, с 40000 товароы:( через csvi обновиться за раз может только 20 товаров... дальше скрипт вылитает по ограничениям хостинга... То есть чтоб обновить товары на сайте нужно 2000 файлов по 20 позиций, каждый из файлов грузять по несколько минут... то есть получаеться что обноволть сайт с такой скокрость можно весь день...

Немного улучшил этот процес. убрав в коде CSVi сохранение логов в базу, в итоге стало грузить бпо 50 позиций....

Какие еще можно сделать действия для ускорения этого процесса?
*

Erepb

  • Осваиваюсь на форуме
  • 44
  • 4 / 0
убрав в коде CSVi сохранение логов в базу

Не подскажете, где это?

Всем привет, может кто поможет привезти в порядок мой сайт интернет магазина с импортом каталога товаров из excel, сайт работает на joomlе, раньше писал вручную, а сейчас много наименований не успеваю.
Естественно за разумное вознаграждение.
Спасибо
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
Неверный счетчик столбцов: Конфигурация: 7 поля :: Файл: 1 поля

Че за фигня, выбрал шаблон импорта товаров, добавил свои поля которые мне нужны а он меня за 7 поле ругает сволочь, что делать?

И вабще какой шаблон выбрать чтобы я использовал свои поля а не каторые там пихают мне...
7 поле ето Category_patch
*

vodka_pivo

  • Захожу иногда
  • 57
  • 5 / 0
  • Ёрш
Так все таки как быть с маленьким изображением?
CSV 1.9

Пробую на локалке, в папке изображения создаются, а в магазин не вставляются. !
*

sega

  • Захожу иногда
  • 272
  • 5 / 0
что то нигде не могу найти решение моей проблемы:
нужно экспортировать.импортировать список свойств (вкладка product status - Attribute List), например для некоторого товара ввожу Title-размер, Property-1, Property-2 итд. Логично предположить что в csvimproved за это будут отвечать поля начинающиеся с attribute, например attribute_list, настраиваю экспорт с этими полями, в итоге в результирующем файле нет этих свойств (само собой ввёдённых ранее)....
Может я поля путаю или ещё что то?
*

serjii

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Народ, столкнулся с такой проблемой, пытаюсь импортировать производителей, но из всего списка импортируется только первая строчка, все остальные - не хотят, выбивает - "Could not add manufacturer"
В шаблоне что первая строка что все остальные заполнены одинаково, почему же вылетает такая ошибка, может кто сталкивался ?

версия CSV Improved - 1.6

Нарыл лог - вот что он говорит:
Код
CSV Improved Version:1.6
PHP Version: 5.2.4
Using template: CSVI Manufacturer details import
Using delimiter: ^
Using enclosure: ~
Skipping the first line
Not skipping default value
Overwriting data
Do not use column headers for configuration
Preview used
File path:
Doing a manufacturerimport import
Field: manufacturer_name
Field: manufacturer_desc
Field: manufacturer_email
Field: manufacturer_url
Field: manufacturer_category_name
Use database for configuration
Memory usage: 6 MB
--------------------------------------------------------------------------------------
Process line 2
Manufacturer update by name
DEBUG_MANUFACTURER_EXISTS Show/hide query
SELECT manufacturer_id FROM jos_vm_manufacturer WHERE `mf_name` = 'Z-Ben'

DEBUG_MANUFACTURER_IMPORT Show/hide query
UPDATE `jos_vm_manufacturer` SET `manufacturer_id`='2',`mf_email`='z-ben@z-ben.cn',`mf_desc`='Известный китайский производитель CCTV камер и систем видеорегистрации',`mf_category_id`='2',`mf_url`='http://www.z-ben.cn/' WHERE mf_name='Z-Ben'

Process line 3
Manufacturer update by name
DEBUG_MANUFACTURER_EXISTS Show/hide query
SELECT manufacturer_id FROM jos_vm_manufacturer WHERE `mf_name` = 'LAICE'

DEBUG_MANUFACTURER_IMPORTSQL Error Show/hide query
Duplicate entry '2' for key 1 SQL=INSERT INTO `jos_vm_manufacturer` ( `manufacturer_id`,`mf_name`,`mf_email`,`mf_desc`,`mf_category_id`,`mf_url` ) VALUES ( '2','LAICE','ykpark@laice.co.kr','Корейский производитель CCTV камер, систем видеорегистрации и комплексных решений систем видеонаблюдения','2','http://www.laice.co.kr/' )

Process line 4
Manufacturer update by name
DEBUG_MANUFACTURER_EXISTS Show/hide query
SELECT manufacturer_id FROM jos_vm_manufacturer WHERE `mf_name` = 'STS'

DEBUG_MANUFACTURER_IMPORTSQL Error Show/hide query
Duplicate entry '2' for key 1 SQL=INSERT INTO `jos_vm_manufacturer` ( `manufacturer_id`,`mf_name`,`mf_email`,`mf_desc`,`mf_category_id`,`mf_url` ) VALUES ( '2','STS','sales@stscctv.com','Крупный китайский производитель оборудования для систем видеонаблюдения','2','http://www.stscctv.com/' )
Вижу что что-то дублирует - но как это исправить ?
« Последнее редактирование: 08.03.2010, 14:49:16 от serjii »
*

TrOn

  • Захожу иногда
  • 91
  • 0 / 0
Народ подскажите как бороться вот с таким ограничением хостера?

Цитировать
Если ваш скрипт в ответ на запрос в течение 60 секунд не передаст apache никаких данных, его работа будет принудительно завершена.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Сообщить об этом скрипту с помощью настроек.
*

Inject

  • Захожу иногда
  • 80
  • 2 / 0
День добрый, разобрался благодаря инструкции. Товары импортируются отлично. Но, есть проблема. После импорта при клике "Купить" ничего не происходит. Так же модули "Популярное" и т.п. не отображают товаров.
Joomla! 1.5.15
VirtueMart 1.1.3 stable
CSVI VirtueMart    1.9

Разобрался, похоже, это из-за отсутствия "" в кириллице.
« Последнее редактирование: 14.03.2010, 10:33:44 от Inject »
*

joomlafun99

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Доброго времени суток, подскажите пожалуйста, можно ли реализовать экспорт товаров с использованием ячеек єкселя. А то он всё сваливает в одну строчку :(
Даёт такое
   _________________________А_____________________________
1 |~product_sku~^~product_thumb_image~^~product_full_image~|
   ---------------------------------------------------------------
Нужно получить такой результат:
  _______А______________B___________________C_______
1| product_sku | product_thumb_image | product_full_image |
  ----------------------------------------------------------
*

Gruz

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

joomlafun99

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Экспортировать надо из OpenOffice.
Попробуй разделители указать не тильду и степень, а пробел и вертикальную полоску.
Не понял, на счёт Опен Офиса.
^ заменил на пробел.
~ заменял на / и |.
Эффекта к сожалению не получил :(
« Последнее редактирование: 26.03.2010, 21:03:05 от joomlafun99 »
*

Gruz

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

joomlafun99

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Из чего ты в CSV сохраняешь? Из MS Office Excel или из OpenOffice Calc?
Я хочу из Joomla в ексель экспортиротнуть стоит только MS Office Excel.
*

Gruz

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

radius

  • Давно я тут
  • 550
  • 45 / 0
Для экспорта в Excel:
Field delimiter - ; (точка с запятой)
Text Enclosure - " (двойная кавычка)

Следим за тем чтобы в импортируемых текстовых полях не было двойных кавычек, иначе Excel запутается.

to Gruz:
Эта табличка

  _______А______________B___________________C_______
1| product_sku | product_thumb_image | product_full_image |
  ----------------------------------------------------------

означает не то, что разделители это | а окантовка поля - пробел, а то, что каждое поле должно быть в отдельной ячейке  ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор Centoff

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

Автор Gruz

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