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

SatMan

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Убрать "Подкатегории"
« : 29.07.2011, 14:21:16 »
Есть категория 1 - основная и пустая, и есть подкатегории 2,3,4,5 и т.д.

В основном меню делаю пункт "K2 - Списки материалов - Категории" - вывод информации получается как на рисунке. Надо убрать слово "Подкатегории", сам не нашел такой возможности, подскажите, как же все таки убрать.






P.S. И еще, почему то не работает возможность "Подробнее..." в описании категории... Показывает всю статью и все тут.... :(
« Последнее редактирование: 29.07.2011, 16:37:50 от SatMan »

Re: Убрать "Подкатегории"
« Ответ #1 : 29.07.2011, 15:27:23 »
 в нерусифицированной версии  убрал надпись  "Children categories"   здесь:

пример.com/templates/ваш шаблон/html/com_k2/templates/здесь папка с именем Layout template для данной категории.
Имя смотрим здесь - в Joomla заходим в К2, выбираем категории, выбираем нужную категорию - и в настройках Category item layout смотрим Layout template.

далее в папке редактируем файл category.php:

Код
		<?php if($this->params->get('subCategories') && isset($this->subCategories) && count($this->subCategories)): ?>
<!-- Subcategories -->
<div class="itemListSubCategories">
<h3><span><?php echo JText::_('меняем или удаляем здесь'); ?></span></h3>

Re: Убрать "Подкатегории"
« Ответ #2 : 08.12.2011, 02:49:34 »
привет, я тоже долго мучился, но вот  решение -  \localhost\www\sait\language\ru-RU\ru-RU.com_k2.ini"
в блокноте находишь - Подкатегории,  и  ..... хочешь удали или просто переименуй.
*

wanderer

  • Осваиваюсь на форуме
  • 41
  • 0 / 0
Re: Убрать "Подкатегории"
« Ответ #3 : 13.01.2012, 19:14:20 »
Тоже избавился от этой надписи. Способ viders помог. Думаю и второй вполне...
*

oleg-great

  • Захожу иногда
  • 50
  • 0 / 0
Re: Убрать "Подкатегории"
« Ответ #4 : 12.03.2012, 21:11:31 »
Избавился от слова «Подкатегории» так:
сайт.ru/templates/ваш шаблон/html/com_content/category/
и в файле blog.php убираем 'JGLOBAL_SUBCATEGORIES'
<div class="cat-children">
            <h3><?php echo JTEXT::_('JGLOBAL_SUBCATEGORIES'); ?></h3>
Мне помогло.
*

ipoint

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Re: Убрать "Подкатегории"
« Ответ #5 : 22.07.2012, 03:20:44 »
В настройках материалов, на закладке "Категория", в графе "Уровни подкатегорий" ставим "Нет".
И будет вам счастье ;)
*

mohaxmohax

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: Убрать "Подкатегории"
« Ответ #6 : 07.09.2012, 03:38:21 »
Я сделал проще:
в файле /language/ru-RU/ru-RU.com_k2.ini изменил значение K2_CHILDREN_CATEGORIES на подходящее и вуоля   :D
на крайний случай можно просто оставить его пустым.
*

Aleks135

  • Новичок
  • 5
  • 1 / 0
Re: Убрать "Подкатегории"
« Ответ #7 : 31.01.2013, 13:10:39 »
Чтоб убрать слово "Подкатегории" можно зайти в нужный пункт меню/параметры категорий (справа)/ уровни подкатегорий/нет. И надпись пропадает, как по волшебству! ^-^
*

Camel1962

  • Осваиваюсь на форуме
  • 18
  • 1 / 0
Re: Убрать "Подкатегории"
« Ответ #8 : 28.03.2013, 00:54:17 »
В настройках материалов, на закладке "Категория", в графе "Уровни подкатегорий" ставим "Нет".

зайти в нужный пункт меню/параметры категорий (справа)/ уровни подкатегорий/нет. И надпись пропадает, как по волшебству!

Если можно, опишите по-подробнее, где это найти. В стандартных настройках материалов Joomla пункт с "уровнем подкатегорий" есть, но в K2 излазил всё - нигде этого не нашёл.

Кстати, ещё вопрос. Отключил в K2 комментарии в некоторых категориях, форма для комментариев пропала, но, тем не менее, осталась надпись "Оставить комментарий" после материала. Как её убрать?

K2 - v.2.6.5, Joomla - v.3.0.3
*

bugmenot

  • Захожу иногда
  • 230
  • 11 / 2
  • za3.by
Re: Убрать "Подкатегории"
« Ответ #9 : 22.10.2013, 16:12:34 »
В настройках материалов, на закладке "Категория", в графе "Уровни подкатегорий" ставим "Нет".
И будет вам счастье ;)



О благодарю, а то от перереработки очевидные факты тупо забываются
*

spoonsport

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
  • Я пока только учусь...
Re: Убрать "Подкатегории"
« Ответ #10 : 13.11.2013, 13:53:55 »
Чтоб убрать слово "Подкатегории" можно зайти в нужный пункт меню/параметры категорий (справа)/ уровни подкатегорий/нет. И надпись пропадает, как по волшебству! ^-^

Если я так делаю, то у меня и весь список категорий пропадает
*

Sauron_zombie

  • Осваиваюсь на форуме
  • 14
  • 1 / 1
Re: Убрать "Подкатегории"
« Ответ #11 : 26.12.2013, 20:45:45 »
Вот и у меня пропадает...
В настройках для всех категорий есть пункт "Показывать текст «Подкатегории»", также это есть и в пункте меню.
Но ни там, ни там установка варианта "Скрыть" не помогает.
Или это глюк, или я что-то глючу.
*

Кто в сапогах

  • Захожу иногда
  • 66
  • 1 / 0
Re: Убрать "Подкатегории"
« Ответ #12 : 09.01.2015, 14:35:50 »
В настройках материалов, на закладке "Категория", в графе "Уровни подкатегорий" ставим "Нет".
И будет вам счастье ;)


Тут вообще-то про К2 говорят
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Убрать ограничение в коротком описании при создании категории в k2

Автор p.g.

Ответов: 0
Просмотров: 2630
Последний ответ 13.10.2022, 09:51:35
от p.g.
Убрать http:// из поля формы регистрации и профиля

Автор lgmax

Ответов: 2
Просмотров: 1963
Последний ответ 20.01.2021, 18:52:22
от dizastill
Как убрать показ объявлений от Google на некоторых страницах?

Автор klara7

Ответов: 1
Просмотров: 866
Последний ответ 14.04.2020, 09:15:48
от sivers
Как убрать tag-k2 в Joomla?

Автор dg_so_use

Ответов: 3
Просмотров: 1164
Последний ответ 18.06.2019, 11:17:11
от draff
Вывод материалов подкатегории в родительской категории. Не в конце

Автор Grione

Ответов: 0
Просмотров: 992
Последний ответ 30.01.2019, 19:27:32
от Grione