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

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Вот такой вопрос интересует.
Насколько мне известно поисковики уже видят и удачно индексируют даже ссылки в javascript, а тег nofollow так вообще прошлый век.
Кто-то советует решить проблему с помощью редиректа, например так http://мой_сайт/redirect.php?url=внешняя_ссылка. Или еще предлагают использовать .htaccess и robots.txt., например так :
В .htaccess
Код
RedirectMatch 302 /linker/(.*)$ $1

в роботс
Код
Disallow: /linker/
ну а ссылка в этом случае будет такая
http://мой_сайт/linker/http://google.ru (по-моему тот же редирект только вид сбоку)
Хотя у меня вообще нет внешних ссылок, но хотелось бы спрятать некоторые внутренние ссылки дабы вес не перетекал куда не надо, и при этом не словить какой-нибудь бан.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Хотя у меня вообще нет внешних ссылок
Первый признак сайта, заслуживающего бан.
Сама идеология www - паутина ссылок, если сайт замыкается на себе, то что это за сайт?
Во всем нужна мера и не надо переусердствований
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Цитировать
Хотя у меня вообще нет внешних ссылок
Ну может с этим немного загнула ;) Установлены счетчики и закладки.
Так что скажете насчет редиректа, не будет ли за это санкций?
И еще как тогда спрятать от Google текст ссылок? С яндексом понятно - обрамляем в <noindex></noindex>  и все.
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Что-то смотрю все только смотрят и никто не пишет...
Вот нашла как от Google спрятать текст (по аналогии с Яндексом тег noindex), полное описание здесь
Код
<!--googleoff: all-->текст.текст.текст.
<!--googleon: all-->
Наверное тема не актуальна... >:(
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Вперед, вперед.
Читайте дальше ***бред и не спрашивайте советов, все равно видится только то что хочется
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Ну хорошо voland, как тогда быть с дублированием меню в футере? С одной стороны пользователю удобно, а с другой это дубль ссылок и контента, который к 99% страниц является не релевантным. Может это бред конечно, но я думаю этот блок стоит закрыть от индексации.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Ну хорошо voland, как тогда быть с дублированием меню в футере? С одной стороны пользователю удобно, а с другой это дубль ссылок и контента, который к 99% страниц является не релевантным. Может это бред конечно, но я думаю этот блок стоит закрыть от индексации.
Это бред :-)
99,99% владелцев сайтов не задумываются над этим и все ок.
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Согласна, если бы там было 3-5-10 ссылок я бы тоже не парилась!)))Там около 50 производителей + еще некоторые разделы сайта.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Согласна, если бы там было 3-5-10 ссылок я бы тоже не парилась!)))Там около 50 производителей + еще некоторые разделы сайта.
А в курсе что Google видит сквозные тексты (тот же футер и меню) и ранжирует документы учитывая этот момент?
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
В курсе на счет Google, а также на счет того (поправьте если что) что он учитывает только 1 ссылку со страницы. Т.е  имеем на какой либо странице 2 одинаковых ссылки на одну и ту же страницу, то он будет учитывать только 1 из них (только вопрос какую?)
А вот с Яндексом вроде не так...
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Как спрятать ссылки от поисковиков
« Ответ #10 : 03.10.2011, 22:32:38 »
В курсе на счет Google, а также на счет того (поправьте если что) что он учитывает только 1 ссылку со страницы. Т.е  имеем на какой либо странице 2 одинаковых ссылки на одну и ту же страницу, то он будет учитывать только 1 из них (только вопрос какую?)
А вот с Яндексом вроде не так...
Ну были такие эксперименты.. да..
Но тут мы уже выходим за рамки паблика как мне кажется ;-)
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Как спрятать ссылки от поисковиков
« Ответ #11 : 03.10.2011, 23:17:04 »
Цитировать
да..
yes!
Наверное можно подытожить - думаю все же лучше скрыть этот блок со ссылками.
Вопрос только подходит ли для этих целей редирект?

Жаль что больше никто не отписался, наверное действительно:
Цитировать
99,99% владелцев сайтов не задумываются над этим

Спасибо voland'у.

Re: Как спрятать ссылки от поисковиков
« Ответ #12 : 11.01.2012, 13:32:47 »
Я об этом задумываюсь!

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

Я имею примерно 1200 ошибок 404 на своем сайте. И вот тут внимание!

Все эти ошибки связаны с тем, что ссылки Яваскриптовые. Они нормально отрабатываются браузером, но Google, как ни странно, по-своему как-то читает то, что у меня стоит в атрибуте onclick и обращается к несуществующему урлу. Причем всегда особенному, в зависимости от того, каков адрес страницы, где это все стоит.

Конечно решение проблемы есть, этих решений много и я их знаю. Но я бы с удовольствием выбрал бы полное закрытие этих ссылок от всех поисковиков подряд.

Другая проблема связана с тем, что у меня есть порядка 3000 страниц, закрытых в файле robots.txt. Все поисковики в один голос кричат о том, что на них не должно быть ссылок на сайте. Тогда они пропадут из списка ошибок. Я точно могу сказать, что как только список страниц, закрытых в роботсах,  уменьшается в статистике Яндекса - у меня тут же вырастают успехи в его выдаче и наоборот.  Про Google не буду говорить, не знаю.

Вывод. Закрывать внутренние ссылки очень даже необходимо.

Кстати, если я отношусь к 0.01% вебмастеров, которые об этом задумываются, то буду весьма доволен. Это льстит моему тщеславию

Хотелось бы спросить у автора темы - Успокоились Вы на чем-нибудь? Ответьте, если не трудно!
*

Kolpakov_DV

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как спрятать ссылки от поисковиков
« Ответ #13 : 11.01.2012, 14:45:55 »
что бы новую тему не создавать, спрошу здесь. У меня на сайте вверху стоит лента новостей от яндекса, а уже ниже идет основной текст главной страницы. Как мне закрыть от индекса эти новости, они размещены отдельным модулем.
*

tizer

  • Осваиваюсь на форуме
  • 49
  • 3 / 2
Re: Как спрятать ссылки от поисковиков
« Ответ #14 : 11.01.2012, 15:03:27 »
никак если они идут голым текстом в HTML.
*

Taatshi

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

Kolpakov_DV

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как спрятать ссылки от поисковиков
« Ответ #16 : 12.01.2012, 09:50:20 »
закройте в noindex всю позицию в index.php шаблона
Расскажите поподробнее. Значит берем index.php который лежит в папке с названием шаблона. У меня лента новостей расположена в модуле слайдшоу, ищем в index.php строчку slideshow. Правильно? Находим вот что
Спойлер
[свернуть]
и к какому в итоге виду нужно привести этот фрагмент?
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать ссылки от поисковиков
« Ответ #17 : 12.01.2012, 10:16:17 »
Спойлер
[свернуть]

в файл CSS добавляем

Спойлер
[свернуть]
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Как спрятать ссылки от поисковиков
« Ответ #18 : 12.01.2012, 10:22:13 »
Цитировать
Как спрятать ссылки от поисковиков
Недавно жаловались на массовые взломы. Суть была такая. Если человек приходит из поиска, то его куда-то редиректило. Там среди прочей ереси было условие пропускать поиковых ботов вроде.
Цитировать
if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") or stristr($referer,"begun.ru") or stristr($referer,"stumbleupon.com") or stristr($referer,"bit.ly") or stristr($referer,"tinyurl.com") or preg_match("/yandex\.ru\/yandsearch\?(.*?)\&lr\=/",$referer) or preg_match ("/google\.(.*?)\/url/",$referer) or stristr($referer,"myspace.com") or stristr($referer,"facebook.com") or stristr($referer,"aol.com"))
;D Не проснулся. Но для ботов условие точно должно быть...
« Последнее редактирование: 12.01.2012, 10:25:36 от Efanych »
Создание сайтов, шаблонов, помощь в решении проблем.
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать ссылки от поисковиков
« Ответ #19 : 12.01.2012, 10:29:10 »
Недавно жаловались на массовые взломы. Суть была такая. Если человек приходит из поиска, то его куда-то редиректило. Там среди прочей ереси было условие пропускать поиковых ботов вроде.  ;D Не проснулся. Но для ботов условие точно должно быть...

Только тут наоборот нужно - посылать поисковых ботов лесом)

Не дописал - давай весь код - у тебя нет здесь условия
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать ссылки от поисковиков
« Ответ #20 : 12.01.2012, 10:37:34 »
Хотя нет... тоже не проснулась  ^-^

Примерно так

Цитировать

if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") or stristr($referer,"begun.ru") or stristr($referer,"stumbleupon.com") or stristr($referer,"bit.ly") or stristr($referer,"tinyurl.com") or preg_match("/yandex\.ru\/yandsearch\?(.*?)\&lr\=/",$referer) or preg_match ("/google\.(.*?)\/url/",$referer) or stristr($referer,"myspace.com") or stristr($referer,"facebook.com") or stristr($referer,"aol.com"))

{
остаток шаблона без слайдшоу
}

else
{
остаток шаблона с слайдшоу
}


только с тегами php тут нужно осторожно - правильно расставить.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Как спрятать ссылки от поисковиков
« Ответ #21 : 12.01.2012, 10:44:29 »
Нашёл. Для яндекса. Все имена, что нашёл. Для Google одно имя вроде, там ещё для картинок какой-то...  
Цитировать
<?php
if ($user_agent == "User-Agent: Yandex/1.03.000 (compatible; Win16; I)" or $user_agent == "User-Agent: Yandex/1.03.000 (compatible; Win16; P)" or $user_agent == "User-Agent: Yandex/1.03.000 (compatible; Win16; H)" or $user_agent == "User-Agent: Yandex/1.03.000 (compatible; Win16; F)" or$user_agent == "User-Agent: Yandex/1.03.000 (compatible; Win16; D)" or $user_agent == "User-Agent: YaDirectBot/1.0 (compatible; Win16; I)"or $user_agent == "User-Agent: Googlebot/2.1 (+http://www.googlebot.com/bot.html)")
{ ?>
Ботов лесом
<?php } else { ?>
ссылка
<?php } ?>

« Последнее редактирование: 12.01.2012, 12:45:40 от Efanych »
Создание сайтов, шаблонов, помощь в решении проблем.
*

Kolpakov_DV

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как спрятать ссылки от поисковиков
« Ответ #22 : 12.01.2012, 10:50:16 »
Цитировать
в файл CSS добавляем
.hide {display: none}
имеется ввиду файл template.css ? куда именно добавлять эту строчку и для чего она нужна?
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать ссылки от поисковиков
« Ответ #23 : 12.01.2012, 10:53:55 »
имеется ввиду файл template.css ? куда именно добавлять эту строчку и для чего она нужна?

Да, в template.css, в любое место - чтобы лишнего дива в шаблоне не отображалось. Можно и проще написать, но тогда noindex не пройдет валидацию
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Re: Как спрятать ссылки от поисковиков
« Ответ #24 : 12.01.2012, 11:03:06 »
Хотя нет... тоже не проснулась  ^-^

Примерно так

только с тегами php тут нужно осторожно - правильно расставить.
Это не то. Здесь не для роботов, а для тех, кто пришёл с поисковых систем
Создание сайтов, шаблонов, помощь в решении проблем.
*

Kolpakov_DV

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как спрятать ссылки от поисковиков
« Ответ #25 : 12.01.2012, 11:08:22 »
Всё сделал. Taatshi, большое спасибо за помощь!
*

Kolpakov_DV

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как спрятать ссылки от поисковиков
« Ответ #26 : 12.01.2012, 11:13:26 »
вот еще один вопрос. Раз уж я закрыл весь модуль с новостями, то ссылки RSS в robots.txt уже закрывать не надо?
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать ссылки от поисковиков
« Ответ #27 : 12.01.2012, 11:14:52 »
Это не то. Здесь не для роботов, а для тех, кто пришёл с поисковых систем

Тогда в if меняем юзверей с поисковиков на роботов..
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Как спрятать ссылки от поисковиков
« Ответ #28 : 12.01.2012, 11:20:46 »
вот еще один вопрос. Раз уж я закрыл весь модуль с новостями, то ссылки RSS в robots.txt уже закрывать не надо?

пусть будут закрыты.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Kolpakov_DV

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
Re: Как спрятать ссылки от поисковиков
« Ответ #29 : 12.01.2012, 11:29:05 »
пусть будут закрыты.
только какой вариант является верным? советуют все по разному -
Disallow: /http://news.yandex.ru/energy.rss/
Disallow: /*feed*
Disallow: /*=atom
Disallow: /*=rss
на чем остановиться?)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Каким плагином можно закрыть внешние ссылки?

Автор gorbi_U

Ответов: 4
Просмотров: 2693
Последний ответ 25.02.2023, 02:29:35
от olegon
вопрос к решению из FAQ. Вместо отсутствия ссылки отсутствует название активного пункта меню

Автор Loh

Ответов: 5
Просмотров: 2363
Последний ответ 10.04.2022, 11:04:26
от fiksius
Google не индексирует страницы через ajax ссылки

Автор illimited

Ответов: 0
Просмотров: 1363
Последний ответ 31.03.2022, 23:53:05
от illimited
Работают ли сейчас ссылки для продвижения?

Автор web1

Ответов: 1
Просмотров: 830
Последний ответ 20.11.2021, 17:26:05
от Byzi
Ссылки на мой сайт не подтягивают фото

Автор MbJaws

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