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

DiziART

  • Новичок
  • 4
  • 0 / 0
  >:(Неужели никто не поможет мне с этой проблемой?  !
*

NeZ

  • Захожу иногда
  • 290
  • 22 / 4
  • Большой программе - большие глюки
Вот русик, распаковываешь в папку administrator\components\com_virtuemart\languages
Видимых дефектов в переводе ни было обнаружено
UPDОбновлен архив, удалены левые файлы.

[вложение удалено Администратором]
« Последнее редактирование: 04.02.2011, 17:31:28 от NeZ »
*

Gruz

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

NeZ

  • Захожу иногда
  • 290
  • 22 / 4
  • Большой программе - большие глюки
В этом языковых переменных не вылазит. Какой был в 1,1,4 не знаю, не давно с ним стал работать. Претензий к русику не имею, все переведено как надо
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
В корне архива лежит левый english.php, он там не нужен.
Во всех папках лежит english.php, которій затрёт оригинальный английский.

Пожалуйста, очисти архив от этих издержек. Спасибо.

З.Ы. А перевод действительно лучше, чем тот, которым я пользовался.
« Последнее редактирование: 04.02.2011, 17:19:31 от Gruz »
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
что то у меня русификация с версией 1.1.4. не получается....админка русифицировалась но название категорий-нет(( что такое?
*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Названия категорий - записи в БД. Русифицируются ручным трудом.
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
админка русифицировалась но название категорий-нет(( что такое?

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

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
uralmas Gruz дык уже ковыряю  базу,только раньше что то нормально всё русифицировалось((
*

Gruz

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

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Gruz да какое там,просто поставил Марту,русифицировал,в админке всё ок,начал создавать категории,а они в "latin" все остались(( можешь запрос подсказать для БД чтобы одним махом в UTF перегнать? а то по одиночке очень долго получиться(
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
А, понял.
Могу посоветовать такое. sypex.net
Это независимая от Joomla утилита для дампов.
Я так делал.
Качаешь, разархивируешь. Заходишь по линку mysite.com/sxd/
Вводишь пароль и логин
Выбираешь правильную БД, если их несколько
Делаешь её дамп указывая UTF-8 и восстанавливаешь из дампа с принудительным указаниме кодировки UTF-8
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
да у меня давно была такая проблема,и как то я просто ей решил...а реально задать принудиловку без sypex ? прямо в БД ?
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Записывай такие вещи (-:

http://www.google.com.ua/search?q=mysql+change+charset+for+all+tables&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:official&client=firefox-a

http://muzso.hu/2008/04/09/how-to-change-the-character-set-and-or-collation-in-a-mysql-database-for-all-tables-and-c

Код
SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'database_name'
ORDER BY 1

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

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Gruz делал такое,вот так,но может я неправильно что то делаю....у меня БД  называется _krat   значит мой запрос должен быть таким:

SELECT CONCAT
('ALTER TABLE `'t.`TABLE_SCHEMA`, '`.`'t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM 
`information_schema`.`TABLESt
WHERE 1
AND t.`TABLE_SCHEMA` = '_krat'
ORDER BY 1


так? или как?  так как писал выше не пашет((( но я по БД плохо соображаю(
*

Gruz

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

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
пробывал и так SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'sait_krat'
ORDER BY 1


не помогает(((
*

Gruz

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

stardel

  • Завсегдатай
  • 1943
  • 22 / 0
Gruz спс) пошёл спать,завтра буду разбираться)
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Мдаааа, ну и релизы пошли. Гордое имя 1.1.7
Весь changlog:
--- VirtueMart 1.1.7 released (Rev. 2688 2011-02-02) ---

04.02.2011
# Task #212 (#202): product snapshot button always "Add to cart".

01.02.2011
# Task #213 Blind SQL injection in parameter "search_category"

30.01.2011 zanardi
# Task #210 PayPal API rerouting to http://xxxx:443
# Task #209 shop.index.php PayPal logo HTML error
# Task #206 SQL update broken
# Task #200 PayPal API wrong payment method type
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
Мдаааа, ну и релизы пошли.
лучше бы VM2 занялись, хоть на официальном сайте и написано, что RC появится в конце марта, меня терзают сомнения...
*

NeZ

  • Захожу иногда
  • 290
  • 22 / 4
  • Большой программе - большие глюки
лучше бы VM2 занялись, хоть на официальном сайте и написано, что RC появится в конце марта, меня терзают сомнения...
Мда, тоже сомневаюсь...
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
ппц...судя по активности, над VM работают 3 человека :o...только что заметил  ^-^
*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Хоть маленький патч, зато патчи стали чаще выходить.

Да, я тоже думаю, что в коменде не хватает рук.
*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Обнаружил косяк - при нажатии на "Дерево категорий товаров" не выдаёт дерево.
*

Gruz

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

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Я для теста создал голый сайт, установил только VM с примерами товаров. Ничего не менял - и вот такой косяк
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Подтверждаю. При свежей инсталляции нет дерева категорий.

Гм... На свежей 1.1.6 в другом месте тоже нет. Сейчас разберёмся.
« Последнее редактирование: 09.02.2011, 16:31:19 от Gruz »
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Поставил все модули - работает.
Он, очевидно, из mod_virtuemart берёт часть java-скриптов.

Советую для установки всех модулей и плагинов разом воспользоваться этим:
http://gruz.org.ua/en/about-joomla/29-joomla-extensions/9-joomla-install-many-extensions-as-one-package.html

Или готовый пакет цепляю. Ставишь одним файлом все модули и плагины.

З.Ы. Папка upload заполнена. Попробуйте файл меньшего размера или свяжитесь с Администратором.

Кладу сюда временно gruz.org.ua/tmp/installabunch_1_0.zip
« Последнее редактирование: 09.02.2011, 16:44:14 от Gruz »
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенос с 1.5 на 3.5 + VirtueMart

Автор andrey488

Ответов: 4
Просмотров: 4015
Последний ответ 07.03.2017, 01:19:33
от SeBun
Проблема с установкой VirtueMart 1.1.4

Автор Tell

Ответов: 10
Просмотров: 8432
Последний ответ 02.01.2017, 17:28:01
от pomogu_chem_smogu
Проблемы с установкой VirtueMart

Автор inka

Ответов: 14
Просмотров: 9186
Последний ответ 03.09.2015, 01:44:49
от Amigos
mod VirtueMart latestprod способствовал появлению белого экрана

Автор smogrom

Ответов: 21
Просмотров: 4666
Последний ответ 15.01.2015, 11:50:23
от Schumaker
Русификация VirtueMart. Как ее сделать?

Автор Koriolan

Ответов: 52
Просмотров: 56486
Последний ответ 05.11.2014, 15:37:43
от Jiggy