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

Palomnik

  • Захожу иногда
  • 206
  • 10 / 0
Приветствую всех!
1. Стоит русская Joomla 1.5.7, скачал Virtuemart для этой версии (VirtueMart_1.1.3-COMPLETE_PACKAGE.j15).
Распаковываю архив, внутри вижу папку с модулями и папку с плагинами, а также архив самого компонента (com_virtuemart_1.1.3.j15) . Устанавливаю  с админки com_virtuemart_1.1.3.j15, відает ошибку, что файл установки не найден?:[ В чем проблема?
2. Скачал также Language_Pack_for_VirtueMart_1.1.3... Куда скидывать этии папки (файлы)?
Прошу не бить ногами, форум перерыл, ответа не нашел...
*

Solser

  • Захожу иногда
  • 64
  • 16 / 1
Причин много может быть. Вопрос: на что ставишь? на локалку , на денвер? или на реальный хост?

Если на Денвер, то у денвера есть ограничение по объему файла не более 2 Мб. Лечится так:
В папке Z:\usr\local\php5  файл php.ini. Там находишь ограничение: upload_max_filesize=2M и меняешь на upload_max_filesize=20M. (например).
На реальном хосте если, то звони (пиши) провайдеру. У них могут быть ограничения по времени для твоего тарифа, например. Либо экспериментируй с .htaccess (там можно органичение по объему также выставить большее).

По Languages_pack. После успешной установки Virtuemart, распаковываешь архив. И папку Languages копируешь в ...\administrator\components\com_virtuemart с заменой. (там уже есть такая папка). Или тупо ручками в каждую подпапку папки...\administrator\components\com_virtuemart\languages, соблюдая соответствие подпапок, добавляешь russian.php и index.html из разорхивированных подпапок.

Я советую, развернуть всё на Денвере, а потом уже заливать на хост.

*

Palomnik

  • Захожу иногда
  • 206
  • 10 / 0
Причин много может быть. Вопрос: на что ставишь? на локалку , на денвер? или на реальный хост?

Если на Денвер, то у денвера есть ограничение по объему файла не более 2 Мб. Лечится так:
В папке Z:\usr\local\php5  файл php.ini. Там находишь ограничение: upload_max_filesize=2M и меняешь на upload_max_filesize=20M. (например).
На реальном хосте если, то звони (пиши) провайдеру. У них могут быть ограничения по времени для твоего тарифа, например. Либо экспериментируй с .htaccess (там можно органичение по объему также выставить большее).

По Languages_pack. После успешной установки Virtuemart, распаковываешь архив. И папку Languages копируешь в ...\administrator\components\com_virtuemart с заменой. (там уже есть такая папка). Или тупо ручками в каждую подпапку папки...\administrator\components\com_virtuemart\languages, соблюдая соответствие подпапок, добавляешь russian.php и index.html из разорхивированных подпапок.

Я советую, развернуть всё на Денвере, а потом уже заливать на хост.


Причин много может быть. Вопрос: на что ставишь? на локалку , на денвер? или на реальный хост?

Если на Денвер, то у денвера есть ограничение по объему файла не более 2 Мб. Лечится так:
В папке Z:\usr\local\php5  файл php.ini. Там находишь ограничение: upload_max_filesize=2M и меняешь на upload_max_filesize=20M. (например).
На реальном хосте если, то звони (пиши) провайдеру. У них могут быть ограничения по времени для твоего тарифа, например. Либо экспериментируй с .htaccess (там можно органичение по объему также выставить большее).

По Languages_pack. После успешной установки Virtuemart, распаковываешь архив. И папку Languages копируешь в ...\administrator\components\com_virtuemart с заменой. (там уже есть такая папка). Или тупо ручками в каждую подпапку папки...\administrator\components\com_virtuemart\languages, соблюдая соответствие подпапок, добавляешь russian.php и index.html из разорхивированных подпапок.

Я советую, развернуть всё на Денвере, а потом уже заливать на хост.



Да, действительно, размер магазина (файла) 2,28 мб... Пока ставлю на Денвер, чтоб обкатать, сервер - это уже будет следующий этап. Сегодня попробую поэкспериметриовать по твоим подсказкам...

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

Palomnik

  • Захожу иногда
  • 206
  • 10 / 0
опробовала все выше упомянутое и один ф.. ни че не пашет, по прежнему не найден файл установки....Что делать, разум мой кипит.

Не мучайтесь а сделайте как я:
1-вариант:
скачиваете Joomla 1.5.9. инсталлятором с уже предустановленным магазином со всеми модулями VirtueMart_1.1.2_eCommerce_Bundle_Joomla_1.5.9. (качаем с virtuemart.net). Устанавливаете. Она английская. Ставите русификатор от русской сборки 1.5.9., копируете  файлы из папки language в сооотв. папки.  Скачиваете и ставите языковый модуль (с рус. яз) для Virtuemart.
В Joomla через админку  в языковых параметрах выставляете "русский". Все русское - все работает. Вся процедура занимает 10 минут.
2. Заходите на _http://joomla-builder.net и сами коструируете себе сборку. Инсталлятор хоть с магазином, хоть с форумом. Тоже ставил с него, все - на-ура работает. Только там все под Joomla 1.0
*

Silently

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Так же можно зайти в /media создать там  папку с именем comp  и сохранить туда zip файлы, затем указать адресс до zip файлов  в установке  и все будет работать + можно так же закачивать шаблоны в папкe /template/
главное  стремление и магическое слова щас выкину в  окно если не будешь работать и  все работает,бубен сломал уже давно).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

500 Internal Server Error при установке Joomla на мастерхосте

Автор mggirl

Ответов: 24
Просмотров: 25593
Последний ответ 01.09.2016, 10:30:38
от Seal_LOSrec
ошибка в установке J2XML

Автор Lennyvchik

Ответов: 4
Просмотров: 2097
Последний ответ 10.11.2015, 16:52:45
от draff
При установке Joomla на хостинг не работает кнопка "далее"

Автор krovidey

Ответов: 11
Просмотров: 7563
Последний ответ 04.12.2014, 20:59:07
от василь
[Решено] Ошибка Fatal error: Maximum execution time of 30 seconds exceeded при установке

Автор klara7

Ответов: 13
Просмотров: 55704
Последний ответ 11.11.2014, 19:11:26
от fixbob
Ошибки при установке расширений (open_basedir и прочее)

Автор npoxop

Ответов: 306
Просмотров: 323216
Последний ответ 27.10.2014, 01:22:30
от Валери