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

Lehaaaa

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
У меня вопрос можно ли как-то сделать так чтобы определенная новость выделялась другим цветом!
Так же интересует поднятие новости вверх!
*

Lehaaaa

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Выделение определенной новости!
« Ответ #1 : 10.07.2013, 15:28:59 »
Или посоветуйте чтоб я мог сделать так:
  • Поднять объект вверх. Поднятие осуществляется на определенный период в днях. Срок поднятия устанавливается администратором на основании оплаты.
  • Объект поднимается как в общем списке объектов, так и в конкретной рубрике, к которой принадлежит объект.
  • Выделить объект цветом. Цвет и срок выделения выбирает администратор на основании заказа и оплаты. Цвета представлены в списке. Список цветов может быть дополнен администратором.
Просто К2 очень подходит под требования кроме поднятия новости и выделения цветом!
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Re: Выделение определенной новости!
« Ответ #2 : 10.07.2013, 15:59:41 »
Поднятие статей-объявлений можно осуществлять за счет выставления даты создания или публикации материала.То есть, если сегодня 10 июля, то ставим дату создания 20 (вручную) и до 20 июля данный материал идет первым.Хотя если таких материалов будет много, то все равно будет путаница и легкий бардак.Все-таки это не совсем компонент доски объявлений.
Выделить можно за счет использования функции Избранное.По умолчанию она одна, отмечается надписью и выводом красного уголка с надписью Featured.Но при небольшом желании сия картинка легко заменяется на нужную. К примеру Премиум.Немножко фотошопа.
*

Lehaaaa

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Выделение определенной новости!
« Ответ #3 : 10.07.2013, 20:35:01 »
А несколькими цветами бы помечать одну новость таким другую таким!
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Re: Выделение определенной новости!
« Ответ #4 : 10.07.2013, 21:03:50 »
Если вам так нужны разные цвета, то воспользуйтесь инструментом редактора Выделение текста.И хоть во все цвета радуги.
*

Lehaaaa

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Выделение определенной новости!
« Ответ #5 : 10.07.2013, 21:09:03 »
Смотрите вот у меня какая идея я думаю можно так сделать только не знаю как!
В админке есть:
«Избранное»?    Нет   Да
В языковых файлах переправить к примеру так
«Выделить»?    Нет   Да(Красный)    Да(синий)    Да(зеленый)    Да(фиолетовый)     Да(желтый)
Как к примеру добавить еще несколько шаблонов чтоб выбираешь сиий оно синим красный красными и тд.
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Re: Выделение определенной новости!
« Ответ #6 : 10.07.2013, 22:37:17 »
Переопределение шаблонов раотает в пределах одной категории.То есть да...все материалы в ней могут быть красными..или зелеными...но опять же все..или выглядеть как обычные.
В данном случае нужно разбираться с переменными item_featured.Наверное можно их сделать несколько с различными вариантами отображения.Но тут я не в курсе.
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Выделение определенной новости!
« Ответ #7 : 10.07.2013, 22:55:55 »
Можно использовать функционал "Избранного" - в настройках можно установить, что сначала будут отображаться избранные материалы.
Можно в шаблоне категории прицепить к избранным материалам счётчик - они в цикле выводятся.

В CSS соответственно задать классы, к примеру featured_1, featured_2 и т.д. - и назначайте разные цвета им.
*

Lehaaaa

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Выделение определенной новости!
« Ответ #8 : 11.07.2013, 07:56:34 »
Не подскажете как это реализовать! очень надо!
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Выделение определенной новости!
« Ответ #9 : 11.07.2013, 10:02:56 »
Не подскажете как это реализовать! очень надо!

Я вам уже подсказал - остаётся только реализовывать.
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Выделение определенной новости!
« Ответ #10 : 11.07.2013, 12:45:48 »
дополнительное поле с выбором (green, red ...),
значение это поля выводить в классе материала
дописать стили для этих значений
сам шучу - сам смеюсь
*

Lehaaaa

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Выделение определенной новости!
« Ответ #11 : 11.07.2013, 13:26:50 »
Вот знать бы как реализовать ! Поэтому за помощью и обращаюсь!
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Выделение определенной новости!
« Ответ #12 : 11.07.2013, 13:36:14 »
Вы хотите чтобы за Вас сделали 100%?
сам шучу - сам смеюсь
*

Lehaaaa

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Выделение определенной новости!
« Ответ #13 : 11.07.2013, 13:49:19 »
Просто я не шарю как это сделать! А очень надо! Мне именно надо как сделать только чтоб разные стили грузились а шаб я сам!
очень просто надо!
*

SDKiller

  • Moderator
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Выделение определенной новости!
« Ответ #14 : 11.07.2013, 14:25:56 »
...Мне именно надо как сделать только чтоб разные стили грузились а шаб я сам...

А что именно в таком случае вы "сам"? Скопировать и вставить готовый код?
Слово "сам" должно нести определённую смысловую нагрузку.

Вам несколько вариантов предложили как сделать - вы даже не пытаетесь вникнуть.
Ну ждите тогда у кого появится время и желание расписывать построчно с номерами строк куда что вставлять, а потом нянчиться с вами если вы вдруг не туда вставите, забудете скобку закрыть и т.д. и т.п.
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Выделение определенной новости!
« Ответ #15 : 11.07.2013, 20:29:42 »
Просто я не шарю как это сделать! А очень надо!
есть коммерческий раздел, free-lance.ru
сам шучу - сам смеюсь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Новости из K2 в JSON формате

Автор kolhoz

Ответов: 3
Просмотров: 1087
Последний ответ 20.09.2017, 20:59:22
от kolhoz
Модуль Sj K2 Mega News как настроить вывод главной новости, остальные - второстепеннные, и в главной

Автор tkulneva

Ответов: 12
Просмотров: 5430
Последний ответ 11.06.2015, 13:52:08
от tkulneva
Обрезание картинки новости по ширине и высоте в K2

Автор AlucarD

Ответов: 9
Просмотров: 2138
Последний ответ 02.06.2015, 09:37:09
от xTARANTINOx
Как сделать новости при просмотре статьи? Определенные условия?

Автор udav99

Ответов: 0
Просмотров: 1063
Последний ответ 09.02.2015, 20:20:35
от udav99
K2 в J 3.3.6 не показывает текст новости целиком

Автор Ulitkas

Ответов: 0
Просмотров: 1173
Последний ответ 28.12.2014, 01:36:26
от Ulitkas