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

Emotion

  • Захожу иногда
  • 101
  • 0 / 0
Два домена на один сайт!
« : 17.04.2009, 18:37:46 »
Привет! Возник вопросик:
Есть один сайт, есть два домена один из них дополнительный.
Надо чтобы с этих двух доменов заходили на один и тот же движок и в то же время активным доменом оставался тот, с которого зашли.

К примеру так: захожу на domen1.ru получаю свой сайт захожу на domen2.ru получаю тот же свой сайт но только с доменом в адресной строке уже domen2.ru. Надеюсь не особо накрутил с вопросом и все поймут что именно надо.

П.С. ДНСы доменов прописаны на одну и ту же директорию и ИП хоста.
Надо чтото поправить или дописать в index.php и configuration.php
В configuration.php  в строке стоит по умолчанию $mosConfig_live_site = 'domen1.ru'; надо туда както ище привинтить domen2.ru или чтото в том роде.
« Последнее редактирование: 17.04.2009, 18:40:51 от Emotion »
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Два домена на один сайт!
« Ответ #1 : 17.04.2009, 18:43:43 »
2 директории - 2 сайта - 1 бд и счастье
*

chemerzaev

  • Давно я тут
  • 630
  • 83 / 3
  • Надо мыслить. Меня, например, кормят идеи.
Re: Два домена на один сайт!
« Ответ #2 : 17.04.2009, 18:52:33 »
Если твой хостер Хостинг центр Рбк то можешь просто алиас создать и все будет класс!
Я несчастный человек, который, как долбаный экстрасенс, должен понимать заказчика, даже если он сам не знает, чего хочет
*

chtec

  • Захожу иногда
  • 230
  • 100 / 1
Re: Два домена на один сайт!
« Ответ #3 : 17.04.2009, 19:03:01 »
Да практически любой платный хостинг позволяет создавать паркованные домены (они же - зеркала сайта). Ничего в файлах прописывать не надо.

Посмотри в панели управления сайтом - наверняка что-то найдешь.
Осень тоже хорошо.
*

Emotion

  • Захожу иногда
  • 101
  • 0 / 0
Re: Два домена на один сайт!
« Ответ #4 : 17.04.2009, 19:03:44 »
2ShadowXak идея не плохая :) а есть ище вариант чтобы файлы сайта не клонировать ище раз ?
2chemerzaev к сожалению нет
2chtec а с строчкой $mosConfig_live_site = 'domen1.ru'; как быть ? в конфиг файле ? отсавить без изменений с введенным урлом первого домена?
« Последнее редактирование: 17.04.2009, 19:19:21 от Emotion »
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Два домена на один сайт!
« Ответ #5 : 17.04.2009, 19:42:28 »
чисто теоретически, не уверен не тестировал на второй домен кладешь токо конфиг файл в котором прописываешь путь до файлов первого, а название от второго, так же и к папке кеш!
*

chtec

  • Захожу иногда
  • 230
  • 100 / 1
Re: Два домена на один сайт!
« Ответ #6 : 17.04.2009, 21:06:14 »
2chtec а с строчкой $mosConfig_live_site = 'domen1.ru'; как быть ? в конфиг файле ? отсавить без изменений с введенным урлом первого домена?

Ничего менять не надо! - если твой хостер подобную услугу предоставляет (должен, по идее, иначе что это за хостер? тем более, что ему это не накладно).

Подмену осуществляет сервер - отдает содержимое сайта domen1.ru, просто заменяя в адресной строке domen1.ru на domen2.ru

Естественно, домен должен быть зарегистрирован и должны буть прописаны NS хостера.

Например, в СPanel, если прокрутить стартовую вниз и выбрать "паркованные домены", то откроется такое окно:



Все просто.
Осень тоже хорошо.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Два домена на один сайт!
« Ответ #7 : 17.04.2009, 21:53:30 »
чисто теоретически, не уверен не тестировал на второй домен кладешь токо конфиг файл в котором прописываешь путь до файлов первого, а название от второго, так же и к папке кеш!
протестировал без всех файлов не работает :)
*

abv85

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Два домена на один сайт!
« Ответ #8 : 05.06.2009, 04:55:54 »
а если нужно чтобы не с интекса второй грузился - уже алиас не пойдет...
тут других вариантов как менять $mosConfig_live_site нету вроде...  :(
правда я где-то видел, что Physicist Бостону предлагал, но тогда это не нужно было, а сейчас тотпостнайти не могу  :(
давайте дружно спрашивать у Бостона и Physicist как это провертеть  ;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как переделать сайт, cозданный в Joomla Lavra Edition 2008 (1.0.15) на Joomla3x ?

Автор KrisKras

Ответов: 12
Просмотров: 5451
Последний ответ 21.02.2017, 15:15:17
от KrisKras
Нагрузка на CP (сайт маленький, <10 посетителей в сутки, <50 просмотров)

Автор silverkat

Ответов: 0
Просмотров: 3145
Последний ответ 02.04.2014, 15:00:08
от silverkat
Сломали сайт!

Автор VIGOPO

Ответов: 3
Просмотров: 7080
Последний ответ 06.12.2013, 15:46:50
от VIGOPO
Ошибки при заходе первый раз на сайт

Автор Omega

Ответов: 1
Просмотров: 3256
Последний ответ 09.04.2012, 20:13:46
от doctorgrif
Вставка счетчика Метрики на сайт

Автор MariyaM

Ответов: 2
Просмотров: 3138
Последний ответ 18.05.2011, 17:51:32
от MariyaM