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

Infinity

  • Новичок
  • 9
  • 0 / 0
Раскажу подробно  купил хостинг, закачал Joomla 1.5.15, установил свой шаблончик весом 155 КБ через вэб интерфейс, ну как обычно надо что то почистить, в моем случае я решил удалить картинку которая мне  не нужна и тут.....
Я сталкнулся с проблемой, Я не мог удалить ее так как у меня нет на это прав. Стал разбираться и правда права на папку не выставлены и что еще круче папка создана пользователем (wwwrun) т. е. не мной и права поменять я не могу так как я не wwwrun.
тут же решил проверить другой шаблон весом в 4 МБ, нажал установить и вылетела ошибка 413 Request Entity Too Large
--------------------------------------------------------------------------------------------
Написал хостеру следующее...

> > Проблема с загрузкой файмов на Joomla (из панели самой Joomla), выдаёт 413 Request
> > Entity Too Large
> > Как исправить?
> > При загрузке файлов через Joomla в Менеджере файлов отображает что файл закачал
> > пользователь wwwrun
> > Как сделать так чтоб можно было закачивать файлы и они были от (меня) моего
> > пользователя?

Вот ответ...

Здравствуйте!
Проблема возникает т.к. загружаемые файлы были созданы средствами PHP по умолчанию
работает как модуль Apache и все скрипты работают от пользователя wwwrun.
Решением проблемы будет установить режим работы php как FastCGI или CGI тогда все
скрипты выполняются от имени пользователя домена.
-------------------------------------------------------------------------------------------

Да конечно на словах все звучит понятно и решаемо но не тут то было!
Этот самый режим работы php как FastCGI или CGI у меня не работает, и они не могут найти решения говорят, что это такой первый случай, что были вопросы и проблемы, но они решались просто. Короче не пашет у меня этот режим и все можете посмотреть его работу на http://medcompanion.ru первая страница норм, а вот нажмите на любую ссылку и увидете результат.

Я уже и так и сяк с хостером а он вообще говорит что типа я разработал сайт на винде и перенес на сервер (что не является таковым так как я залил файлы по  фтп и установил на сервереу них)
а решили они так потому что в файле htaccess.txt, то что он с расширением ТХТ мой косяк, но хостер сказал не в этом дело, у меня абракадабра вот такого плана...


##
# @version $Id: htaccess.txt 13415 2009-11-03 15:53:25Z ian $
# @package Joomla RE
# @localized ��������� ����� (C) 2005 - 2009 Joom.Ru - ������� ��� Joomla! ��� ����� ��������.
# @copyright ��������� ����� (C) 2005 - 2008 Open Source Matters. ��� ����� ��������.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! - ��������� ����������� �����������.
##

#  ��������� ��������� ����� �� ���������. ��� �������������, ���������������.

AddDefaultCharset utf-8

#  ��������� ������ - ������� ��������� ��������� PHP
#  ��� ������� ������������ ��������� ����������� Joomla.
#  ���������������� (������ ����������� - #) ������ ������,
#  ���� ��������� ������ ����� �� ������������� �������������
#  ��������� ���������� Joomla.
#  ��� ������������� 500 ������ �������, ��������������� ������, ����������
#  ������, ��� ��� ������ � php_flag.

#  php_flag register_globals Off
#  php_flag display_errors Off
#  php_flag file_uploads On
#  php_flag allow_url_fopen off
#  php_flag magic_quotes_gpc On
#  php_flag magic_quotes_runtime Off


#  ������ ������ �������� �������� ��� ������ ������:
#  ��� Windows - c:/temp
#  ��� UNIX  - /tmp

#  ��������� ������� ������ ��������� ������������ � ���� �������� ��� ������

#  ��� �������������, ���������������� ������ ���� ����
#  php_value session.save_path c:/temp

#####################################################
#  �������� ���������, ���� ������ ������������ ���� ����
#
# ������ ���� ����� �������: 'Options +FollowSymLinks' ����� ������� ��������
# ��� ��������� ������������� �������. ��� ���������� ��� ������������� ������
# Apache mod_rewrite, �� ����� ���� ��� ��������� ��������������� ������
# ������� � ��������� ����� ��������� � .htaccess ����� ���� ���������.
# ���� ��� ��������� �������� ������ �������, �� ��������������� ������
# (�������� ������ # � ������ ������), ������������� � �������� ���� �
# ������������� ������ SEF-������. ���� ��� ��������, �� ��� �� ���� ������
# ������ �����, �.�. ��� ��� ��������� ��������������� �������.
#
# ������, ������� ����� ���������������� (� ������������) ����� ������ ���� #.
# ������ � ����� ��������� ## ����������������� �� ����. � ��������, ������� ��
# �� �����������, ��� ������ ������ ���������� � ������� #
#
#####################################################

##  ����� ���� ����������������, ���� �������� ������ �������. �������� ���������� ����.
Options +FollowSymLinks

#
#  ��������� mod_rewrite

RewriteEngine On

########## ������ - ������� ��������� �������� ��� ���������� ���������������� ����������
## ���� � ��� �������� �������� � ����� ������, ����������� ���� ��������� ��������
## ��� �������� ������������� ����� ���������������� ��������� Joomla!
#
## ��� ������� ������� � xml-������ ���������� (���������������� ��� ���������)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## ����� ���� ������� ������� � xml-������

# ����������� ����� ������, ���������� ���������� �������� mosConfig ����� URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# ����������� ����� ������, ���������� ��������� base64_encode ����� URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# ����������� ����� ������, ���������� ��� <script> � URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# ����������� ����� ������, ���������� ���������� �������� ���������� ���������� PHP ����� URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# ����������� ����� ������, ���������� �������� _REQUEST ���������� ����� URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# �������������� ��������������� ������� �� �������� 403 � ������������ ��������!
RewriteRule ^(.*)$ index.php [F,L]
#
########## ����� ������ ��������� ��� ���������� ���������������� ����������

#  ���������������� ��������� ������, ���� URL ������ web-�������
#  �� ������� �������� � ����������� ������ ������.
#  �������� ��� ������� Joomla (����������� "/" ��� ����������� ����� �������)

# RewriteBase /


########## ������ ������� SEF ���� Joomla!
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## ����� ������� SEF ���� Joomla!

*

Infinity

  • Новичок
  • 9
  • 0 / 0
Суть всего написанного выше ХЕЛП! Я вообще не знаю че делать
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

шаблон IT Newsy - By IceTheme проблема со списком.

Автор wolf34

Ответов: 4
Просмотров: 6042
Последний ответ 30.05.2017, 11:52:27
от darkghost
Проблема с изменением логотипа штатного шаблона rhuk_milkyway Joomla_1.5

Автор Porohok

Ответов: 6
Просмотров: 4869
Последний ответ 22.03.2017, 10:34:23
от Porohok
Проблема отображения контента при масштабировании окна браузера

Автор Свят

Ответов: 2
Просмотров: 2263
Последний ответ 10.02.2016, 15:14:24
от Свят
Что такое создать переопределение в менеджере шаблонов?

Автор masimka

Ответов: 2
Просмотров: 2724
Последний ответ 18.11.2015, 12:50:03
от masimka
Раздельный кеш для разных шаблонов

Автор Matysh

Ответов: 0
Просмотров: 1829
Последний ответ 14.11.2015, 09:55:43
от Matysh