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

EWG65

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
Re: Каталог статей в виде таблицы
« Ответ #30 : 28.02.2012, 21:33:45 »
Где ловить переменную?
Ну, поскольку $this->item->extra_fields - это массив, то я и заменил в своём коде
Код
        <?php foreach ($this->item->extra_fields as $key=>$extraField): ?>
    <td>
<span class="catItemExtraFieldsLabel"><?php echo $extraField->value; ?></span>
</td>
    <?php endforeach; ?>

на
Код
		<?php $odin = $this->item->extra_fields[0]; ?>
<?php $dva = $this->item->extra_fields[1]; ?>
<?php $tri = $this->item->extra_fields[2]; ?>
    <td>
<span class="catItemExtraFieldsLabel"><?php echo $odin->value; ?></span>
</td>
    <td>
<span class="catItemExtraFieldsLabel"><?php echo $dva->value; ?></span>
</td>
    <td>
<span class="catItemExtraFieldsLabel"><?php echo $tri->value; ?></span>
</td>

Проверил - всё работает. Сталбыть, извлекаем переменные как из банального массива, без перебора, по индексу.
Это решение имеет один недостаток. Оно не универсально, т.к. чётко надо знать, сколько именно у тебя этих дополнительных полей в данной категории.
« Последнее редактирование: 28.02.2012, 21:43:55 от EWG65 »
*

asdf27

  • Захожу иногда
  • 120
  • 7 / 0
Re: Каталог статей в виде таблицы
« Ответ #31 : 28.02.2012, 21:48:33 »
Блин, делал подобное массивом в стороннем скрипте, а тут и в голову не пришло))) Забирай все мои плюсы :)
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
Re: Каталог статей в виде таблицы
« Ответ #32 : 28.02.2012, 21:57:44 »
так а под-итог будет!? Как  правильнее сделать вывод материалов в категории в виде таблицы?!
Смотрю....
*

asdf27

  • Захожу иногда
  • 120
  • 7 / 0
Re: Каталог статей в виде таблицы
« Ответ #33 : 28.02.2012, 22:06:01 »
Что имеете ввиду под "правильно"?
*

EWG65

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
Re: Каталог статей в виде таблицы
« Ответ #34 : 28.02.2012, 22:10:18 »
Как  правильнее сделать вывод материалов в категории в виде таблицы?!
Правильнее всего, ИМХО, на каждый случай свой шаблон делать :)
*

rembot

  • Захожу иногда
  • 101
  • 2 / 0
  • +++
Re: Каталог статей в виде таблицы
« Ответ #35 : 19.03.2012, 16:02:14 »
Цитировать
Когда-то делал нечто подобное, только без картинок.
Задача была - выводить в виде таблицы название материала, как ссылка (при нажатии открывается сам материал), и три дополнительных поля. В принципе, можно туда и картинку присобачить.
Только шаблон делал под k2 v2.4.1, надо смотреть, не поменялось ли чего в структуре шаблона под v2.5.4. В этом шаблоне используется только количество основных материалов, оно показывает, сколько строк будет в таблице до пагинации.

А можно взглянуть на шаблон который использовался для вывода в такую таблицу? Просто сейчас передо мной стоит похожая задача, хочу попробовать решить ее с помощью К2.
*

EWG65

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
Re: Каталог статей в виде таблицы
« Ответ #36 : 19.03.2012, 16:05:25 »
А можно взглянуть на шаблон который использовался для вывода в такую таблицу? Просто сейчас передо мной стоит похожая задача, хочу попробовать решить ее с помощью К2.
Я бы выложил сюда этот шаблон, но, по всей видимости, здесь ограничения на прикрепление файлов по количеству постов. Во всяком случае, я не нашёл, где можно прикрепить файл.
В принципе, я всё расписал чуть раньше - как и что надо изменять в шаблоне. Если этого недостаточно - могу выслать шаблон на почту.
*

rembot

  • Захожу иногда
  • 101
  • 2 / 0
  • +++
Re: Каталог статей в виде таблицы
« Ответ #37 : 19.03.2012, 17:10:01 »
Если не затруднит, вышлите на почту. Так нагляднее будет для меня :)
*

EWG65

  • Осваиваюсь на форуме
  • 11
  • 4 / 0
Re: Каталог статей в виде таблицы
« Ответ #38 : 20.03.2012, 03:52:17 »
Отправил :)
*

rembot

  • Захожу иногда
  • 101
  • 2 / 0
  • +++
Re: Каталог статей в виде таблицы
« Ответ #39 : 20.03.2012, 09:17:04 »
Большое спасибо)
*

fendile

  • Новичок
  • 5
  • 0 / 0
Re: Каталог статей в виде таблицы
« Ответ #40 : 01.08.2012, 15:41:07 »
Здравствуйте) А я могу тоже попросить на почту этот шаблончик? если он еще жив... Буду очень благодарна)
*

rembot

  • Захожу иногда
  • 101
  • 2 / 0
  • +++
Re: Каталог статей в виде таблицы
« Ответ #41 : 01.08.2012, 16:12:19 »
Здравствуйте) А я могу тоже попросить на почту этот шаблончик? если он еще жив... Буду очень благодарна)
Сейчас отправлю
*

Nat_li

  • Новичок
  • 5
  • 0 / 0
Re: Каталог статей в виде таблицы
« Ответ #42 : 11.06.2017, 17:23:16 »
Попробую попросить помощи здесь.
Помогите с выводом материалов категории к2 2.7.1 (Тribune Тimes) примерно таким
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Фильтр в виде ползунков по полям радиокнопкам

Автор lalalag

Ответов: 0
Просмотров: 2852
Последний ответ 29.10.2017, 22:58:21
от lalalag