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

xporter

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Есть сайт на двух языках украинский и русский. Реализовано с JoomFish.  Как Google и Яндекс отнесется к таким страницам

http://site.ru/ru/page.html  и  http://site.ru/uk/page.html

Текст на странице не переводится. Переводится только навигация на сайте. То есть и на странице http://site.ru/ru/page.html и на странице http://site.ru/uk/page.html текст будет на русском языке.

Как я понимаю это будет дублированным контентом.

Тут мне раньше посоветовали вставить такой код чтоб закрыть от индексации языки:

<?php
if ($this->language = 'uk-ua'){
$document = & JFactory::getDocument();
$document->setMetaData('robots', 'noindex, follow'); //тут может nofollow, это как вам уже надо
}
?>

Но после вставки в шаблон сайт перестал работать (500error). Отмена изменений в index.php не помогла. Сайт дальше не работал. Не думаю что это совпадение. Пришлось восстанавливать с бекапа.

Как правильно поступить в такой ситуации?
*

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
Re: Мультиязычный сайт и дубли
« Ответ #1 : 14.07.2012, 20:51:11 »
закрыть в robots.txt ссылки вида http://site.ru/uk/

Disallow: /uk/*  #вроде так лучше уточнить
Это бидаль пича.
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Мультиязычный сайт и дубли
« Ответ #2 : 14.07.2012, 20:58:28 »
Вот объясните мне... почему перевод только у навигации? У посетителей цель попасть на страницу или все-таки ее прочитать?
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

xporter

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Мультиязычный сайт и дубли
« Ответ #3 : 14.07.2012, 22:07:50 »
Вот объясните мне... почему перевод только у навигации? У посетителей цель попасть на страницу или все-таки ее прочитать?

потому что текст должен быть на языке оригинала
*

xporter

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Мультиязычный сайт и дубли
« Ответ #4 : 14.07.2012, 22:09:13 »
закрыть в robots.txt ссылки вида http://site.ru/uk/

Disallow: /uk/*  #вроде так лучше уточнить


а это правило будет правильным, или вы сомневаетесь?
может есть другие варианты?
*

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
Re: Мультиязычный сайт и дубли
« Ответ #5 : 14.07.2012, 22:33:35 »
потому что текст должен быть на языке оригинала
А смысл тогда в переводе меню на украинский? Помоем это лишняя заморочка учитывая что текст все равно на русском.

Из справки Яндекса.
Цитировать
User-agent: Yandex
Disallow: /cgi-bin* # блокирует доступ к страницам начинающимся с '/cgi-bin'

Значит правильнее будет Disallow: /uk*
Это бидаль пича.
*

xporter

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Мультиязычный сайт и дубли
« Ответ #6 : 14.07.2012, 23:13:55 »
А смысл тогда в переводе меню на украинский? Помоем это лишняя заморочка учитывая что текст все равно на русском.

Из справки Яндекса.
Значит правильнее будет Disallow: /uk*

на некоторых страницах текст украинский


а не будет директива Disallow: /uk* блокировать страницы в адрессе которых есть упоминание "uk" ?
*

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
Re: Мультиязычный сайт и дубли
« Ответ #7 : 15.07.2012, 00:09:48 »
xporter А не проще ли тогда конкретно в дублируемых материалах в настройках самого материала указывать атрибуты noindex и nofollow? И тем самым не подводить все под одну гребенку?
Это бидаль пича.
*

Rex_One

  • Захожу иногда
  • 453
  • 37 / 0
Re: Мультиязычный сайт и дубли
« Ответ #8 : 15.07.2012, 02:13:22 »
на некоторых страницах текст украинский


а не будет директива Disallow: /uk* блокировать страницы в адрессе которых есть упоминание "uk" ?

Совершенно верно, если так поступить то все, независимо от языка статьи начинающееся на uk буду игнорироваться.
Если уж закрывать от индексации, то лучше/правильнее будет как написал HiopsNerevar
Disallow: /uk/*
Таким образом не будет индексироваться ничего что находится после http://вашсайт.юа/uk/
Но тогда смысл двуязычности сайта?

Кривизна рук не компенсирует прямизну извилин.
*

xporter

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Мультиязычный сайт и дубли
« Ответ #9 : 15.07.2012, 10:01:35 »



но если в индекс попадут страницы http://site.ru/uk/page.html  то Google примет их за дубль страниц http://site.ru/ru/page.html ......
эти две страницы абсолютно одинаковые, отличие только в языке навигации.
По сути я нчего не теряю, но если оставить две страницы в индексе то мне грозят санкции от ПС.
Или я не прав?
*

HiopsNerevar

  • Давно я тут
  • 630
  • 88 / 0
  • Я удобный.
Re: Мультиязычный сайт и дубли
« Ответ #10 : 15.07.2012, 16:40:07 »
xporter Если два одинаковых текста на разных страницах то да, санкции всенепременно будут. Но если вы утверждаете что будет и уникальный контент (на украинском) то зачем блокировать все.
Это бидаль пича.
*

Hot_Gomer

  • Захожу иногда
  • 296
  • 12 / 0
  • sudo su
Re: Мультиязычный сайт и дубли
« Ответ #11 : 17.07.2012, 03:36:58 »
а что делать в таком случае?
у меня 2 языка - русский и английский. Для каждого языка контент на своем языке. При создании карты сайта нахожу такие страницы:
site.ru/
site.ru/ru/
site.ru/ru/home.html

далее  все страницы, на русском языке идут дублями с /ru/ и без, т.е. /uslugi.html, /ru/uslugi.html
на английском языке только 2 страницы повторяются:
site.ru/en/
/en/home.html

Подскажите, как избавиться от этих дублей
Joomla, Drupal, Ruby on Rails -
что может быть лучше?)
*

relisis

  • Новичок
  • 1
  • 0 / 0
Re: Мультиязычный сайт и дубли
« Ответ #12 : 20.01.2013, 02:07:06 »
Цитировать
Hot_Gomer
у меня 2 языка - русский и английский. Для каждого языка контент на своем языке. При создании карты сайта нахожу такие страницы:
site.ru/
site.ru/ru/
site.ru/ru/home.html
Присоединяюсь к вопросу. Как вариант, думаю, возможно сделать редирект в .htacces с site.com/ru/ на site.com. По идее должно сработать, но не смог понять как это сделать, что именно прописать... Может кто поможет?
*

AlexandrV13

  • Новичок
  • 6
  • 0 / 0
Re: Мультиязычный сайт и дубли
« Ответ #13 : 12.05.2013, 20:29:59 »
Здравствуйте!
У меня семь языков на Joomla 2.5, дублей огромное количество, лезут со всех сторон, выглядят ссылки примерно так:

www.site.com/nedvizhimost/doma-objecty/20-russian-lang/nedvizhimost-v-chernogorii/doma/25-dom.html;
www.site.com/en/nedvizhimost/doma-objecty/20-russian-lang/nedvizhimost-v-chernogorii/doma/25-dom.html;
www.site.com/en/nedvizhimost/kvartiry-objecty/20-russian-lang/nedvizhimost-v-chernogorii/doma/25-dom.html;

первая ссылка правильная, вторая это категории и статья из русского языка, но к ней как-то прибавился английский язык, в третьей ссылке категория поменялась сама на квартиры, но статья взялась из домов, и такая каша по каждому языку. Категории сделаны в три уровня - первый уровень - "русский язык", второй уровень "недвижимость", третий - "квартиры", "дома", далее то же самое по другим языкам. Редирект в .htaccess делаю, но такое ощущение, что новые дубли только появляются и конца им нет, учитывая что статей и категории много.

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

Как продвигать сайт! (интернет-магазин)?

Автор Kooll5

Ответов: 31
Просмотров: 7442
Последний ответ 07.02.2023, 13:59:57
от Ратник
Странные дубли

Автор Lemonez

Ответов: 3
Просмотров: 3002
Последний ответ 03.09.2022, 23:02:10
от Alexeyman
Один сайт, доступный через два домена (зеркало?)

Автор slepoy

Ответов: 2
Просмотров: 1349
Последний ответ 20.11.2021, 17:50:48
от Byzi
Как удалить странные дубли из поисковика?

Автор Elimelech

Ответов: 1
Просмотров: 920
Последний ответ 14.09.2021, 15:41:54
от ForQue
Ссылки на мой сайт не подтягивают фото

Автор MbJaws

Ответов: 7
Просмотров: 1655
Последний ответ 26.10.2020, 13:40:24
от MbJaws