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

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
добрый вечер!

вопрос такой: title и h1 сейчас одно и тоже, а надо чтобы были разные поля.
Как правильно создать дополнительное поле в разделе материалы, в самом материале хочется разместить в настройках метаданные


Joomla 2.5.11 , без К2 и shopping
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
странно что не грузится https://drive.google.com/file/d/0B11J2g3dC4v9eG94SWZhWk1DSzA/view?usp=sharing
может так?

ну да, пока 2.5
перенесу как освоюсь. мне быв порядок привести то что есть.
нашла вот такое решение
<?php
$document = JFactory::getDocument();
if ($this->item->created_by_alias)
$document->setTitle($this->item->created_by_alias);
?>
но вопрос как мне вместо алиаса хотя бы поле автор сделать?
везде где алис на автор поменять?
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
и в public_html/templates
у меня вот их сколько:
   atomic   
   beez5      
   beez_20      
как понять кто за что отвечает?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
у меня вот их сколько:
   atomic   
   beez5      
   beez_20      
как понять кто за что отвечает?
админка - расширения - менеджер шаблонов и смотреть какой из этих стандартных стоит по умолчанию
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
админка - расширения - менеджер шаблонов и смотреть какой из этих стандартных стоит по умолчанию
atomic
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
проблема ещё в том, что в папке atomic вот это
https://drive.google.com/file/d/0B11J2g3dC4v9RTJCX0RZOFBYRHc/view?usp=sharing
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
и что вас смущает я не пойму?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
да не смущает, понять не могу где нужно писать это решение и как заменить поле автор
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
наверно нужно идти от структуры шаблона в папке HTML, если у вас там есть шаблоны контента
для начала посмотрите по форуму структуру шаблона и в частности папки HTML, которая служит для переопределения вывода компонентов\модулей
и еще раз сформулировать вопрос, я пока не очень понимаю где и что вы хотите вывести
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
мне нужно в материале, не важно где, вывести отдельно title и сохранить отдельный вывод h1
/public_html/templates/beez5/html/com_content/article/default.php у меня по такому адресу.
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
просто подумала раз уж у меня все мета-теги в одной куче, то и позицию Автор, могла бы спокойно пожертвовать на title, если уж под замену...
*

Gosha5767

  • Захожу иногда
  • 487
  • 27 / 0
Посмотрите здесь, может подойдет для вас
 Тег title для CMS Joomla
Чистка сайта от дублей в Яндекс и Google.
Миграция Joomla 1.5 до Joomla 3.хх
Доработка сайта
*

zveregg

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Посмотрите здесь, может подойдет для вас
 Тег title для CMS Joomla

Да спасибо!  Решила аналогично, с помощью плагина вчера. Но вообще интересно, без плагинов создание дополнительных полей в материалах  не возможно?  
« Последнее редактирование: 24.10.2015, 21:25:58 от zveregg »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] title материалов и категорий без пунктов меню

Автор pharaoh

Ответов: 269
Просмотров: 65836
Последний ответ 03.02.2022, 02:45:26
от globus812
Не пускает в админку Joomla 2.5 (решение)

Автор zicale

Ответов: 43
Просмотров: 57151
Последний ответ 08.05.2019, 09:10:54
от Nevelskoy
Как сделать нормальные заголовки страниц (title)?

Автор alienshooter

Ответов: 42
Просмотров: 34808
Последний ответ 29.10.2018, 21:36:14
от Elena91
Разделитель в название сайта в title

Автор karsalex

Ответов: 16
Просмотров: 7503
Последний ответ 17.07.2017, 23:24:55
от Mihalych
Полцарства за решение проблемы Notice: Undefined index: view in /... components/com_content/router

Автор Grigorii

Ответов: 6
Просмотров: 5622
Последний ответ 17.04.2016, 07:15:30
от vipiusss