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

elenty

  • Захожу иногда
  • 97
  • 4 / 0
  • ученик Христа
Добрый день.
Скажите пож-та, есть ли возможность нумерации адресов страниц (подразумеваю то "название", которое пишется в строке адреса) по собственному желанию/шаблону?
При создании новой страницы ей присваивается адрес, имеющий вид, как в скриншоте NAPRIMER2.
А хотелось бы, чтобы страницы нумеровались более короткими названиями (см.скриншот NAPRIMER1), например страница "1", "2", "3" или "nachalo", "o_kompanii", "novosti".
Когда я создавала страницы html просто в макромедии и заливала из на сайт, номера и названия были такие, какие я захочу. При знакомстве с joomla (которая мне оч.нравится) я поняла, что не получается назвать страницы соотв.именами.
Подскажете?

[вложение удалено Администратором]
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Переименуйте файл htaccess.txt в файл .htaccess, который расположен в корне сайта. (распакуйте из htaccess.zip во вложении, если не получится переименовать)

Включите SEO в разделе административной части «Общие настройки». (см. seo.gif во вложении)

Далее, при создании пункта меню, пропишите в поле «Псевдоним» английский вариант написания заголовка пункта меню. (см. menu.gif во вложении)

Откройте сайт с первой страницы и... вуаля!

Ваши ссылки принимают удобочитаемый вид, типа www.mysite.ru/style.html или www.mysite.ru/style/substyle.html, если у пункта меню с псевдонимом «style» есть подменю с псевдонимом «substyle»

[вложение удалено Администратором]
*

elenty

  • Захожу иногда
  • 97
  • 4 / 0
  • ученик Христа
gdX,
всё получилось
очень вам признательна
*

elenty

  • Захожу иногда
  • 97
  • 4 / 0
  • ученик Христа
не знаю в чем сложность, но сейчас я не могу сделать то же самое на другом сайте- если включаю все позиции (как в seo.gif во вложении), то главная страница сайта отображается без проблем, а при попытке перейти на другую страницу в строке адреса пишется правильное название то есть http://www.SITE.ru/usersgallery.html  , а страница не грузится, выдает ошибку
Говорит, что нет такой страницы на сервере. Но она есть, сама её так называла.
Цитировать
Not Found
The requested URL /usersgallery.html was not found on this server.
*

Файрик

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Надо включить mod_rewrite и ещё узнать, дает ли хостинг добро на mod_rewrite и на htaccess.. гм а вернее наоборот -> сперва узнать, а уж потом менять)
*

vagkrsk

  • Давно я тут
  • 731
  • 125 / 0
  • Дорогу осилит идущий
подскажите! Очень срочно нужно!!
Если я создаю новый материал в определенной категории новости например, но не прикрепляю это в меню - как сделать ссылку на эту страницу!? Или ссылка появляется только если это пункт меню???
Не пойму...

Цель применения ссылки не понятна.

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

Если Вы подключите модуль последние новости, то она появится в этом блоке.

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

Если Вас интересует вывод новостей по ключевым словам, то поищите на форуме информацию по слову - tags .

Вопрос не совсем ясен, поэтому и ответ может оказаться не в строку.
« Последнее редактирование: 22.06.2009, 00:17:49 от vagkrsk »
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
а еще можно сделать в templateDetails.xml поле, которые не будет использоваться, и все менюшки, которые не должны быть видны, а "ссылки надо", складывать туда : )
в файле шаблона этого поля просто не делать.
+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

php скрипт для вызова url адреса открытой страницы

Автор bigrash

Ответов: 10
Просмотров: 6594
Последний ответ 17.02.2024, 20:12:05
от Vastriet
Чем лучше всего делать резервные копии сайта?

Автор 7Azimuth

Ответов: 115
Просмотров: 57415
Последний ответ 29.11.2023, 14:41:12
от sivers
Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 3660
Последний ответ 12.11.2023, 23:37:03
от all_zer
Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1781
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Версия сайта для слабовидящих

Автор nikos

Ответов: 22
Просмотров: 44207
Последний ответ 27.11.2020, 11:04:18
от chernobyl