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

Гиперион

  • Новичок
  • 5
  • 0 / 0
Хочу загрузить новый шаблон, ниче не получается.

Вот что выходит:

JFolder::create: Невозможно создать каталог
Шаблон Установить: Ошибка при создании директории "/home/httpd/vhosts/nadym-val.su/httpdocs/book/templates/siteground-j15-24"
Установить Шаблон: Ошибка


Что мне с этим делать?

До этого грузил шаблон на локальный сервер(себе в комп) все работало нормально.
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Закачать через FTP на хостинг в папку templates и пользоваться.
*

Гиперион

  • Новичок
  • 5
  • 0 / 0
Попробовал сейчас, не могу даже так залить.

Сейчас поддержку спрошу, че там у них
*

Гиперион

  • Новичок
  • 5
  • 0 / 0
вот их ответ: 22:43:43 Олег Мамаев: Попробуйте поменять права на папку httpdocs/book/templates/ на 777

поменял, попробовал в очередной раз закачать, и все равно нет его на сервере
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Проверь права на папки - в этом списке права должны быть 777
Админка->Меню->Помощь->Информация о системе->Права на папки
*

Гиперион

  • Новичок
  • 5
  • 0 / 0
ну вот, посмотрел: templates/   Доступен на запись

ниче не пойму, в чем же дело....
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Через FTP должна качаться информация на хостинг.
Там папка шаблона появляется? После перекачки?
Если нет, то разбирайся с хостингом.
*

Гиперион

  • Новичок
  • 5
  • 0 / 0
ниче там не появляется.
доступ ла папку с шаблонами 777.
поддержка пока нервно курит в сторонке. молчат чего-то...

разберусь, напишу в чем было дело)
*

HOG_Seruj

  • Захожу иногда
  • 110
  • 1 / 0
Народ, кто то решил эту проблемку, у меня также, для папок права 777, но ничего сделать нельзя, такая же ошибка, на хостинг вобще ничего добавить нельзя, ни один модуль не грузить :( в експлорер(компонент) зайти тоже нельзя :(  !!!???!!!
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Вам нужно разобраться с правами на папки на хостинге.
На разных хостингах разные условия доступа к правам на папки.
Если у Вас есть доступ к Менеджеру файлов, то самостоятельно установите права.
Проверьте, если на папки и файлы сайта (обращаю внимание: файлы и папки сайта, а не другие папки на хостинге)
установлены права  apache, то их необходимо снять.
*

HOG_Seruj

  • Захожу иногда
  • 110
  • 1 / 0
Так шаблон загрузился нормально, в адмике его видно, только выбрать его нельзя  >:(
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
Читайте ответ постом выше
*

werewolfe

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Та же проблема с установкой компонента


Конфиг:


Права каталогов, изменил на все рекрусивно
Код
root@werewolfe:/var/www/web15/web# ls -l
итого 260
drwxrwxrwx 11 web_admin web15  4096 2009-08-30 23:35 administrator
drwxrwxrwx  2 web_admin web15  4096 2009-08-30 23:38 cache
-rwxrwxrwx  1 web_admin web15 93219 2009-08-30 23:34 CHANGELOG.php
drwxrwxrwx 13 web_admin web15  4096 2009-08-30 23:38 components
-rwxrwxrwx  1 web_admin web15  1711 2009-08-31 19:56 configuration.php
-rwxrwxrwx  1 web_admin web15  3409 2009-08-30 23:35 configuration.php-dist
-rwxrwxrwx  1 web_admin web15  1175 2009-08-30 23:34 COPYRIGHT.php
-rwxrwxrwx  1 web_admin web15 14373 2009-08-30 23:34 CREDITS.php
drwxrwxrwx  2 web_admin web15  4096 2009-08-30 21:55 error
-rwxrwxrwx  1 web_admin web15  2663 2009-08-30 23:34 htaccess.txt
drwxrwxrwx  6 web_admin web15  4096 2009-08-30 23:39 images
drwxrwxrwx  8 web_admin web15  4096 2009-08-30 23:39 includes
-rwxrwxrwx  1 web_admin web15   591 2009-08-30 23:34 index2.php
-rwxrwxrwx  1 web_admin web15  2052 2009-08-30 23:34 index.php
-rwxrwxrwx  1 web_admin web15  4344 2009-08-30 23:34 INSTALL.php
drwxrwxrwx  5 web_admin web15  4096 2009-08-30 23:40 language
drwxrwxrwx 16 web_admin web15  4096 2009-08-30 23:41 libraries
-rwxrwxrwx  1 web_admin web15 17816 2009-08-30 23:34 LICENSE.php
-rwxrwxrwx  1 web_admin web15 27984 2009-08-30 23:34 LICENSES.php
drwxrwxrwx  2 web_admin web15  4096 2009-08-30 23:42 logs
drwxrwxrwx  3 web_admin web15  4096 2009-08-30 23:42 media
drwxrwxrwx 22 web_admin web15  4096 2009-08-30 23:43 modules
drwxrwxrwx 11 web_admin web15  4096 2009-08-30 23:43 plugins
-rwxrwxrwx  1 web_admin web15   304 2009-08-30 23:34 robots.txt
drwxrwxrwx  2 web_admin web15  4096 2009-08-31 04:01 stats
drwxrwxrwx  6 web_admin web15  4096 2009-08-30 23:45 templates
drwxrwxrwx 15 web_admin web15  4096 2009-08-31 20:08 tmp
drwxrwxrwx  4 web_admin web15  4096 2009-08-30 23:47 xmlrpc
root@werewolfe:/var/www/web15/web#
Может я что то не то копаю?
Извиняюсь что не в ту ветку, но, просто поиском нашел. :)
« Последнее редактирование: 31.08.2009, 18:23:48 от werewolfe »
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
Отключитете в настройках использование FTP, права 777 на каталог templates.

И все будет замечательно устанавливаться.
Если проблема останется, то проверить правильность сконфигурирации папки /TMP и /log c исползованием абсоютных путей относительно корня сервера.
Проверте еще "Помощь" - "Информация о системе" - "Права на папки"
Все папки должны бить доступны на запись
кодинг на php.
*

HOG_Seruj

  • Захожу иногда
  • 110
  • 1 / 0
Народ у меня проблема решилась таким образом:
в папке configuration.php прописываем:
 log /home/папка сайта/domains/сайт/public_html/logs
путь tmp прописываем просто /tmp/

Спасибо Dron79 за полезную инфу, я прада ничего не отключал, но вот ето сдельть стоит: Проверте еще "Помощь" - "Информация о системе" у вас в списке будет написано какие папки не доступны на запись, у меня было 2 папки:
Log Directory ($log_path)
Temp Directory ($tmp_path) 
У меня ети файлы  в конце списка :) 
*

Dron79

  • Захожу иногда
  • 321
  • 37 / 0
  • Век живи - век учись!
пути к папкам зависят от настроек хостинга. На Питерхосте у меня сайты встали и заработали без всякой настройки. все стояло по умолчанию. А вот с сайтами на мастерхосте полный атас, после обновления версии Joomla до 1.5.14 все настройки приходится устанавливать в ручную, иначе дополнения не устанавливаются.
кодинг на php.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести путь до шаблона с помощью API Joomla?

Автор elche

Ответов: 13
Просмотров: 15808
Последний ответ 11.09.2018, 23:48:50
от DK-Scorp
шаблон IT Newsy - By IceTheme проблема со списком.

Автор wolf34

Ответов: 4
Просмотров: 6039
Последний ответ 30.05.2017, 11:52:27
от darkghost
Стили шаблона

Автор karkan25

Ответов: 12
Просмотров: 4537
Последний ответ 21.05.2017, 16:40:32
от karkan25
Проблема с изменением логотипа штатного шаблона rhuk_milkyway Joomla_1.5

Автор Porohok

Ответов: 6
Просмотров: 4867
Последний ответ 22.03.2017, 10:34:23
от Porohok
Настройка неадаптивного шаблона

Автор Zegeberg

Ответов: 4
Просмотров: 4588
Последний ответ 21.06.2016, 00:21:06
от Zegeberg