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

Руководство поставило задачу перевести сайт на новый хостинг. Все было сделано в "режиме" ftp -  с одного хостинга слил, в другой залил и в добавок базу данных sql подвязал, только вот сайт не стартовал. Я полез в админ панель на старом хостинге и увидел "Joomla lavra edition 2007". c joomla  я до этого не был знаком, нигде не пересикался. По гуглил, ознакомился подправил
configuration.php
$mosConfig_host = 'адрес базы mysql'; 
$mosConfig_user = 'имя доступа к mysql';
$mosConfig_password = 'пароль доступа к mysql';
$mosConfig_db = 'имя базы';
$mosConfig_absolute_path = 'абсолютный путь к файлам сайта';
$mosConfig_cachepath = 'абсолютный путь к папке для хранения кэша';
$mosConfig_live_site = 'http://www.адрес_сайта.ру'; )

но ничего не изменилось, сайт так и не стартует. погуглил еще и наткнулся, на инфу что на определенные директории ( по типу cache, images, media, components ) нужно выставлять права доступа, но как не описано. Можете подсказать как настраивать права доступа и возможные варианты настроек в дальнейшем, если вдруг сайт так и не стартонет, на что в первую очередь нужно  обратить внимание.

Очень надо решить этот вопрос!!
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
как я и описывал ранее в этом форуме делается все до безобразия просто ;)
находите в сети дистрибутив Joomla lavra edition 2007, ой да вродя любой подойдет, конечно не знаю, х.з. не пробовал, ну не суть!
---
Вариант 1
1. удаляем все с фтп, что закачали до этого
2. заливаем распакованный архив с дистрибутивом Joomla
3. заходим браузером на сайт начинается установка Joomla
4. проходим все этапы установки (на 2 этапе показывается все что требуется по правам), если хостинг линукс или юникс (по мне одна ботва). то заходим тотол командером на фтп и меняем права на файлы (в тотоле "Файл-Изменить атрибуты, выставляем или 755 или 777, в зависимости от хостинга")
5. копируем новосозданный файл configuration.php к себе в укромное место
6. удаляем все нафиг с фтп и залеваем бекап Joomla
7. импортируем мускл бд (предварительно через phpmyadmin удаляем то что было создано установкой)
8. заливаем configuration.php из укромного места в корень сайта с заменой!
9. заходим на сайт и радуемся!
---
Вариант 2

Находим исполнителя и платим ему денешку за то что бы он грамотно развернул сайт из бекапа!

Спасибо! Все получилось.
Только кодировка все время слетает. Чтобы нормально просматривать сайт приходит приходится менять  unicode (UTF-8) на кирилица (Windows-1215). Это возможно где-то подправвить?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
вот накидал статейку Переносим сайт с локалки на хостинг (Вариант 1)
---
поидеи все должно заработать ;)
« Последнее редактирование: 27.09.2009, 00:29:41 от ShadowXak »

Хостинг там своеобразный, как таковой админ панели нету, msql и phpmyadmin присутствует да и все. В принципе этого достаточно, но если бы не глюк с юникодом. При открытии .htaccess первыми строчками является
##
# @version $Id: htaccess.txt 5973 2006-12-11 01:26:33Z robs $
# @package Joomla
# @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


и где добавлять строчку AddDefaultCharset WINDOWS-1251 не знаю. пробовал экспериментальным путем. не угадал (((
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Код
##
# @version $Id: htaccess.txt 5973 2006-12-11 01:26:33Z robs $
# @package Joomla
# @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##

AddDefaultCharset WINDOWS-1251
Ну вот так к примеру, но лучше обратится к хостингу и проверить какая кодировка у таблиц в БД, поищите на форуме по ключу кракозябры, кодировка, решений масса!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает пункт меню в админке Новый материал

Автор NICTO

Ответов: 8
Просмотров: 4844
Последний ответ 01.05.2022, 19:01:23
от Maksdal
Проблема с БД после переезда на новый хостинг

Автор dimitriopolus

Ответов: 6
Просмотров: 22496
Последний ответ 03.01.2018, 23:42:41
от vikup34
Валидация сайта

Автор Pinin

Ответов: 26
Просмотров: 4561
Последний ответ 08.05.2017, 17:08:56
от Pinin
Восстановление управляемости сайта на Joomla 1.0.12 после обновления php до версии 5.5 и последовате

Автор galogen

Ответов: 6
Просмотров: 4774
Последний ответ 15.02.2017, 01:58:44
от Alex Revo
Как реализовать рассылку новостей с сайта?

Автор mystique

Ответов: 6
Просмотров: 6040
Последний ответ 08.01.2017, 16:16:51
от vipiusss