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

Vas80

  • Захожу иногда
  • 238
  • 0 / 1
Друзья просканировал сайт программкой Xenu. Был в шоке. Куча дублей страниц.
Скажите как убрать внутренние дубли такого типа
?option=com_content&catid=31&format=html&id=209&view=article&itemid=509

Посмотрите реальный пример две одинаковые страницы
http://abal.com.ua/?option=com_content&catid=31&format=html&id=209&view=article&itemid=509
http://abal.com.ua/vozvrat-dolgov-v-kieve.html

Помогите решить проблему. 301 редирект в файле htaccess не помогает!

Движок Joomla 3.4.1


Также есть страницы такого типа
http://abal.com.ua/?option=com_search&catid=29&id=253&view=article&Itemid=568&format=opensearch
Их тоже надо как то убрать
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Так а почему бы в роботс просто не закрыть? На эти страницы же юзеры не выходят?
*

wishlight

  • Гуру
  • 5059
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
очень помогают плагины

JL No Doubles
NSTS - Non-SEF to SEF

В первом не забывайте про настройки.
*

Vas80

  • Захожу иногда
  • 238
  • 0 / 1
Так а почему бы в роботс просто не закрыть? На эти страницы же юзеры не выходят?
юзеры то не заходят, но такие страницы попадают в поисковую выдачу и это губит сайт выдаче по позициям
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
юзеры то не заходят, но такие страницы попадают в поисковую выдачу и это губит сайт выдаче по позициям
Для этого и нужен robots.txt
*

Vas80

  • Захожу иногда
  • 238
  • 0 / 1
очень помогают плагины

JL No Doubles
NSTS - Non-SEF to SEF

В первом не забывайте про настройки.

а как настроить чтобы не появлялсь такие странцы ?option=com_search&catid=31&id=144&view=article&Itemid=261&format=opensearch

установил JL No Doubles. ОН ничего не склеил. Страницы пагинации перестали работать, не листаются
*

Vas80

  • Захожу иногда
  • 238
  • 0 / 1
Для этого и нужен robots.txt
к сожалению не всегда в таких случаях robots.txt  помогает. все равно мусорные url попадают в выдачу, это касается Google
*

Vas80

  • Захожу иногда
  • 238
  • 0 / 1
Да это капец. Что неужели нет решений. Почему разработчики до сих пор не решают проблему дублей Joomla.

Кстати страница плагина NSTS - Non-SEF to SEF выдает ошибку, он не скачивается

Друзья готов заплатить деньги, чтобы наконец то все решить с этими дублями.
У меня сайт плохо продвигается из-за этих долбанных дублей.
*

Vas80

  • Захожу иногда
  • 238
  • 0 / 1
не хочется переходить на другой движок. уже привык к Joomla
Помогите конкретно решить проблему, без общих советов
*

Gosha5767

  • Захожу иногда
  • 487
  • 27 / 0
Удалить дубли из поиска Яндекса и Google на раз - два не получится.
Нужна долгая работа в течении 2-3х месяцев.
При помощи запрета дублей в файле роботс и редиректа.
Контроля страниц в поиске Яндекса и Google после каждого апа и последующей корректировки файла роботс.
А также нужно провести внутреннюю оптимизацию сайта.
Чистка сайта от дублей в Яндекс и Google.
Миграция Joomla 1.5 до Joomla 3.хх
Доработка сайта
*

wishlight

  • Гуру
  • 5059
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
Страницы пагинации перестали работать, не листаются

Он убирает дубли с id. В настройках исключения сделайте и шаг поставьте 1 или кратный вашему при пагинации.
А второй делает то, что вы сказали.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Странные дубли

Автор Lemonez

Ответов: 3
Просмотров: 2997
Последний ответ 03.09.2022, 23:02:10
от Alexeyman
Расширенные описания страниц в Joomla (микроданные, микроформаты, RDFa, schema.org)

Автор ELLE

Ответов: 151
Просмотров: 112672
Последний ответ 20.11.2021, 18:15:42
от Byzi
Решение - Редирект со страниц AMP на обычные

Автор draff

Ответов: 2
Просмотров: 1262
Последний ответ 20.11.2021, 17:03:03
от draff
Убрать из URL GET-параметр и сделать редирект на главную

Автор zeus07

Ответов: 8
Просмотров: 1021
Последний ответ 19.11.2021, 13:10:41
от zeus07
Как удалить странные дубли из поисковика?

Автор Elimelech

Ответов: 1
Просмотров: 920
Последний ответ 14.09.2021, 15:41:54
от ForQue