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

VadimY

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
Пагинация неправильная, только у меня?
Просто не встречал подобного вопроса...

К2 - последний
Joomla - последняя
Сеф - Артио (от него не зависит, проверял)

Только на первой странице (home page) почти нормально смотриться (page - 1, page - 2, page - 3 и т,д)  правда с отставанием на 1 страницу (реальная page1 = 0, page2 = page1), ну ладно, на это я закрыл глаза...

Но на всех других страницах... просто ужас! вторая страница - ?limitstart=9, третья страница - ?limitstart=18, четвертая страница - ?limitstart=27

Это вообще мне не понятно!

И самое ужасное, если чистить кеш, то они меняются! И, как следсвие, появляется куча 404-ых, которые надо редиректить!

Пожалуйста, избавьте меня от этого вечернего занятия - затирать 404! Устал я уже, а они плодятся и плодятся....

Зараннее - большое спасибо!
*

HYBRID

  • Захожу иногда
  • 228
  • 47 / 0
  • Они захватят мир
телепаты в отпуске, сайт в студию
сомневаюсь что виноват сам k2, так как он генерирует ссылки вида ...?start=N
N зависит от заданного кол-ва материалов на страницу

Цитировать
Joomla - последняя
случаем не 1.6 и бета версия k2?
http://hybrid-lab.com - лаборатория
*

tim222

  • Захожу иногда
  • 67
  • 2 / 0
У меня были глюки с этим делом, когда я менял в настройках пункта меню количество первичных, вторичных итд элементов.. При нажатии на 3 страницу открывалась 2 итд. Вобщем я этого избежал следующим путем, поставил вывод первичных материалов (6 штук на страницу) в остальных пунктах таких как вторичных итд я поставил нули. После этого через sh404SEF убил все ссылки и заново отксканировал сайт, после чего сбросил кеш. Все заработало нормально.
*

VadimY

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
телепаты в отпуске, сайт в студию
сомневаюсь что виноват сам k2, так как он генерирует ссылки вида ...?start=N
N зависит от заданного кол-ва материалов на страницу
случаем не 1.6 и бета версия k2?

Joomla 1,5,23 К2 - 2,4,1

вот пример второй страницы : http://russiahousenews.info/page-1 (хотя должна быть page-2)
а вот пример второй страницы из категории : http://russiahousenews.info/poetry-artur-ginsburg?limitstart=9
а вот пример третей страницы из категории : http://russiahousenews.info/poetry-artur-ginsburg?limitstart=18
и так далее...
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Такое ощущение, что у вас отсутствует файл пагинации k2 или он заменен стандартным джумловским (возможно, что заменен в шаблоне).

Потому что к2 генерит ссылки вида http://domeennoe_imya/nazvanie-kategorii/id-nazvanie-materiala?start=5.
« Последнее редактирование: 14.06.2011, 15:41:05 от staticlight »
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

tim222

  • Захожу иногда
  • 67
  • 2 / 0
Кстати там на сайте ошибочка в облаке тегов.. само название "Поиск статей ключевым по словам"
*

VadimY

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
Такое ощущение, что у вас отсутствует файл пагинации k2 или он заменен стандартным джумловским (возможно, что заменен в шаблоне).

Потому что к2 генерит ссылки вида http://domeennoe_imya/nazvanie-kategorii/id-nazvanie-materiala?start=5.

Спасибо, а Вы не могли бы его мне скинуть? И подсказать куда его положить?
*

VadimY

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
Кстати там на сайте ошибочка в облаке тегов.. само название "Поиск статей ключевым по словам"

Спасибо, исправлю... но уже вечером, убегаю на работу
*

VadimY

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
Ну что за невезение? Перепробовал все pagination.php из многих шаблонов с поддержкой К2... Результат нулевой!

Сеф (Артио) выключен, Jooma SEF включен:
Главная страница (home page), кликаю на 2 - url: http://ххххххх/index.php?start=8

Сеф (Артио) включен, Jooma SEF включен:
Главная страница (home page), кликаю на 2 - url: http://ххххххх/page-1

Любые другие страницы сайта, кроме хома
Сеф (Артио) выключен, Jooma SEF включен: http://хххххххх/art-story?start=9
Сеф (Артио) включен, Jooma SEF включен: http://хххххххх/art-story?limitstart=9

Где копать? Помогите пожалуйста.

P.S. Cash чистил, везде.




Ну где я мог накосячить? Ведь ни у кого нет этих проблем!
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
http://хххххххх/art-story?start=9

так и должно быть.
можно от индексации закрыть все страницы с ?start=xxxxxx
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

VadimY

  • Осваиваюсь на форуме
  • 30
  • 1 / 0
http://хххххххх/art-story?start=9

так и должно быть.
можно от индексации закрыть все страницы с ?start=xxxxxx

Вы меня непоняли, мне нужен нормальный вид - page1, page2,page3 и т.д и на всех страницах, а не только на главной.
И, навсякий случай, как закрыть от индексации все страницы с ?start?

Спасибо
*

staticlight

  • Moderator
  • 1086
  • 65 / 0
  • Staticlight
Вы меня непоняли, мне нужен нормальный вид - page1, page2,page3 и т.д и на всех страницах, а не только на главной.
Спросите, в теме, где обсуждают Artio или 404Sef

Цитировать
И, навсякий случай, как закрыть от индексации все страницы с ?start?

http://help.yandex.ru/webmaster/?id=996567


Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
НЕ пойму проблемы, например в sh404 можно в ручную переписать все ссылки на любые для Вас удобные!

И кстати вот так делать нельзя
Сеф (Артио) включен, Jooma SEF включен:
Главная страница (home page), кликаю на 2 - url: http://ххххххх/page-1
Что-то одно должно быть!
Смотрю....
*

dtokar

  • Захожу иногда
  • 51
  • 1 / 0
Ну что за невезение? Перепробовал все pagination.php из многих шаблонов с поддержкой К2... Результат нулевой!

Сеф (Артио) выключен, Jooma SEF включен:
Главная страница (home page), кликаю на 2 - url: http://ххххххх/index.php?start=8

Сеф (Артио) включен, Jooma SEF включен:
Главная страница (home page), кликаю на 2 - url: http://ххххххх/page-1

Любые другие страницы сайта, кроме хома
Сеф (Артио) выключен, Jooma SEF включен: http://хххххххх/art-story?start=9
Сеф (Артио) включен, Jooma SEF включен: http://хххххххх/art-story?limitstart=9

Где копать? Помогите пожалуйста.

P.S. Cash чистил, везде.




Ну где я мог накосячить? Ведь ни у кого нет этих проблем!

У меня тоже такое было, отключите Джумловский SEF в общих настройках ив се будет ок

Правда это вызвало у меня проблему открытия карточки товара, но ссылка у меня на его краточку стоит в onclick
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Кэш. Как обновить в нем только измененную страницу K2?

Автор x1

Ответов: 25
Просмотров: 1687
Последний ответ 04.03.2019, 17:07:49
от x1
В К2 не прикрепляется изображение к материалу, загружает только через сервер

Автор nia

Ответов: 3
Просмотров: 1340
Последний ответ 17.02.2018, 09:38:34
от kisBoss
Отображение вложения К2 только для авторизованных пользователей

Автор rahmarrav

Ответов: 0
Просмотров: 1255
Последний ответ 15.04.2017, 13:48:48
от rahmarrav
Не работает пагинация K2 Joomla 3.6.2

Автор Nurdaulet

Ответов: 1
Просмотров: 1122
Последний ответ 13.11.2016, 11:25:21
от Nurdaulet
Изображения в материал грузятся только с сервера

Автор msweb

Ответов: 0
Просмотров: 871
Последний ответ 03.06.2016, 12:47:58
от msweb