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

reasons

  • Захожу иногда
  • 382
  • 6 / 0
  • http://dehost.biz
Re: Как закрыть ссылку в материале? Noindex
« Ответ #30 : 30.10.2011, 18:49:03 »
Цитировать
качаете мой плагин и публикуете его. всё. лишнего геммороя любители ))

разрешите спросить, запросы в БД от плагина не увеличиваются?
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #31 : 30.10.2011, 18:51:52 »
Спойлер
[свернуть]


NightGuard Не хочу тебя огорчать. Но, что то без изменений.
Может Сначала по порядку,
Представь как будто я только, что задал вопрос..
Что куда прописывать? что прописывать в кнопку плагина
Что прописывать в текст в редакторе. !
« Последнее редактирование: 05.11.2011, 13:18:09 от skai »
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #32 : 30.10.2011, 18:57:58 »
Кнопка у тебя дает вот такое: {link title=Заголовок}Ссылка{/link}
Верно?
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #33 : 30.10.2011, 19:05:17 »
Кнопка у тебя дает вот такое: {link title=Заголовок}Ссылка{/link}
Верно?
Верно
Но все равно на сайте


В настройках стоит NoEditor не может быть из за этого?
« Последнее редактирование: 30.10.2011, 19:12:42 от lost83 »
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #34 : 30.10.2011, 19:11:39 »
Я сейчас тоже не поленилась - поставила плагин (J1.5.22)
если просто заменить тот маленький кусочек - также как у lost83
если заменить полностью pb_spoiler.php на тот что выше, то кроме заголовков вообще текста нет у материалов.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #35 : 30.10.2011, 19:13:35 »
http://night-guard.ru/11.zip - Работает 100% только что проверил.
Перед установкой старый плагин удалить (кнопку оставить).
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Как закрыть ссылку в материале? Noindex
« Ответ #36 : 30.10.2011, 19:13:52 »
разрешите спросить, запросы в БД от плагина не увеличиваются?
Для Joomla 1.5 запросов к БД не делает ни одного. Для 1.0 - 1 запрос.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #37 : 30.10.2011, 19:14:27 »
Я сейчас тоже не поленилась - поставила плагин (J1.5.22)
если просто заменить тот маленький кусочек - также как у lost83
если заменить полностью pb_spoiler.php на тот что выше, то кроме заголовков вообще текста нет у материалов.
Когда копируете с форума кодировка левая почему-то, там в регулярке косяк получается.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #38 : 30.10.2011, 19:15:12 »
Я сейчас тоже не поленилась - поставила плагин (J1.5.22)
если просто заменить тот маленький кусочек - также как у lost83
если заменить полностью pb_spoiler.php на тот что выше, то кроме заголовков вообще текста нет у материалов.
А у меня при замене, текст стал как текст а не как ссылка до этого был как ссылка
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #39 : 30.10.2011, 19:16:28 »
В итоге у меня выдает:
Код: html4strict
<p><noindex><a target="blank" href="/Ссылка">Заголовок</a></noindex></p>



http://night-guard.ru/11.zip - Работает 100% только что проверил.
Перед установкой старый плагин удалить (кнопку оставить).
« Последнее редактирование: 05.11.2011, 13:18:57 от skai »
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #40 : 30.10.2011, 19:28:06 »
у меня так
Код
<noindex><a href="/&lt;a href=" http:="" joomlaforum.ru="" index.php="" topic,183788.30.html#lastpost"="" style="text-align: justify;">joomlaforum.ru/index.php/topic,183788.30.html#lastPost</a>" target="blank"&gt;Заголовок</noindex>
ничего не трогала - просто вместо "ссылки" вставила ссылку


P.S.
а, все работает, только ссылки нужно не вставлять , а прописывать
« Последнее редактирование: 05.11.2011, 13:20:17 от skai »
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #41 : 30.10.2011, 19:34:39 »
Что я делаю не так? ((
Код: html4strict
<p><noindex><a target="blank" href="http://www.webnames.ru/scrp/vhosting_docs.pl">Web-хостинг :: документация</a></noindex></p>


В плагине в строке 43 исправить target="blank" на target="_blank". Т.е. вместо:
Код: html4strict
$html .= '<noindex><a href="'.$link.'" target="blank">'.$matches[1].'</a></noindex>';
должно быть
Код: html4strict
$html .= '<noindex><a href="'.$link.'" target="_blank">'.$matches[1].'</a></noindex>';

Сори, опечатка :(
« Последнее редактирование: 05.11.2011, 13:20:50 от skai »
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #42 : 30.10.2011, 19:45:07 »
Ну вот удалил папку с плагином, установил новый который ты мне дал а он пишет Плагин Установить: Плагин "pb_spoiler" уже существует!
Его нет но он есть в менеджере плагинов почему то
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #43 : 30.10.2011, 19:47:18 »
NightGuard у меня редактор получается то сразу ставит ссылку ссылкой, т.е.
<p style="text-align: justify;">{link title=Заголовок}<a href="http://joomlaforum.ru/index.php/topic,183788.new.html#new">http://joomlaforum.ru/index.php/topic,183788.new.html#new</a>{/link}</p>

получается чтобы работало надо сначала нажать на кнопку, потом открыть HTML и туда вставить ссылку - только так или ручками писать))



Ну вот удалил папку с плагином, установил новый который ты мне дал а он пишет Плагин Установить: Плагин "pb_spoiler" уже существует!
Его нет но он есть в менеджере плагинов почему то
надо было через менеджер удалять
« Последнее редактирование: 05.11.2011, 13:19:33 от skai »
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #44 : 30.10.2011, 19:49:24 »
ELLE, я использую стандартный тини, все ОК.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #45 : 30.10.2011, 23:28:51 »
Nofollow нету(
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #46 : 30.10.2011, 23:29:58 »
Т.е.?
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #47 : 30.10.2011, 23:32:29 »
В плагине в строке 43
Код: html4strict
$html .= '<noindex><a href="'.$link.'" target="_blank">'.$matches[1].'</a></noindex>';


здесь же добавить rel="nofollow" можно
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #48 : 30.10.2011, 23:34:49 »
Т.е.?
Внешние ссылки:
http://www.vam-veselo.ru (есть noindex)
http://letitbit.net/download/28169.20428d959f4cff1d3e37013ca340/skolko_u_tebja_kinomka.ru.avi.html (есть noindex)
http://vip-file.com/downloadlib/2565860468111691784541-27573.224c7bb8c24bfb3926be96bb6435/2.dnja.kinomka.ru.avi.html (есть noindex)
http://letitbit.net/download/51395.5de9b4eedbe89f6315f7bf9b5d98/ja.ne.znaju.kak.ona.eto.kinomka.ru.avi.html (есть noindex)
http://www.pr-cy.ru/ (есть noindex)
http://counter.pr-cy.ru/prcy/kinomka.ru (есть noindex)

Счетчики:

liveinternet.ru (есть noindex)

Рекомендации:

Мы настоятельно рекомендуем закрывать внешние ссылки с Вашего сайта от индексирования поисковиками. Лучший способ закрыть ссылки от индексации - спрятать их в jawa script.
Отлично - все счетчики закрыты тегами <noindex>.
Отлично - все внешние ссылки закрыты тегами <noindex>.

А вот это от Seoquake

Спойлер
[свернуть]

Незнаю может со временем появиться Yes
хз
Этот плагин закрывает от Google?


здесь же добавить rel="nofollow" можно
Ща попробую, спасибо
« Последнее редактирование: 05.11.2011, 13:15:58 от skai »
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #49 : 30.10.2011, 23:40:19 »
Смысл этого плагина в том, чтобы сслку руками не вписывать, а обрабатывать по метке, то, что у вас будет выводиться в итоге на фронте сайта формируется в плагине вот в этой строке:
Код: php
$html .= '<noindex><a href="'.$link.'" target="_blank">'.$matches[1].'</a></noindex>';
-----------------------------
Здесь небо ясно и яро,
Здесь воздух чист и светел,
Тобой здесь дышит сам ветер,
Команданте Че Гевара
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #50 : 30.10.2011, 23:41:37 »
здесь же добавить rel="nofollow" можно
Погоди а у меня всего 42 строки)
Вот весь код

Код
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );

//load plugin params info
global $bname, $btext;
$pluginParams = new JParameter( $plugin->params );
$btext = $pluginParams->def('btext', '{cbutton}text{/cbutton}');
$bname = $pluginParams->def('bname', 'Button text');


class plgButtonpb_spoiler extends JPlugin
{
       function plgButtonpb_spoiler(& $subject, $config)
       {
               parent::__construct($subject, $config);
       }

       function onDisplay($name)
       {
               global $mainframe, $bname, $btext;
$btntext = $btext;
$doc =& JFactory::getDocument();
$template = $mainframe->getTemplate();
               $js = "
                       function insertSpoiler(editor) {
var jsbtntext = '".$btext."';
jInsertEditorText(jsbtntext, editor);
}
";
               $doc->addScriptDeclaration($js);
                $doc->addStyleSheet( $mainframe->getSiteURL(). 'plugins/editors-xtd/pb_spoiler.css', 'text/css', null, array() );
               $button = new JObject();
               $button->set('modal', false);
               $button->set('onclick', 'insertSpoiler(\''.$name.'\');return false;');
               $button->set('text', $bname);
               $button->set('name', 'pb_spoiler');
               $button->set('link', '#');

               return $button;
       }
}?>
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #51 : 30.10.2011, 23:43:29 »
А вообще Эра правильно написал - воспользуйтесь его плагином.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #52 : 30.10.2011, 23:45:09 »
Нет уж хватит мучений)))
Надо добивать этот.)
Странно в коде нет ноиндекс а на самом деле они есть.. :-X
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #53 : 30.10.2011, 23:47:39 »
Это два плагина. Один ставит кнопку в редактор, эта кнопка ставит маркер, а второй плагин обрабатывает этот маркер.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #54 : 30.10.2011, 23:49:07 »
И почему в http://www.liveinternet.ru/click есть NoFolow клгда я его там не ставил.
Что то я вообще уже ни чего не понимаю
Код
        <div class="stat">  <noindex>
<!--LiveInternet counter--><script type="text/javascript"><!--
document.write("<a rel=”nofollow” href='http://www.liveinternet.ru/click' "+
"target=_blank><img src='//counter.yadro.ru/hit?t53.10;r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' alt='' title='LiveInternet:Pokaz za"+
" 24 chasa ' "+
"border='0' width='88' height='31'><\/a>")
//--></script><!--/LiveInternet-->
          </noindex>
  </div>


P.S.
Это два плагина. Один ставит кнопку в редактор, эта кнопка ставит маркер, а второй плагин обрабатывает этот маркер.
Тоесть ноиндекс есть в плагине кнопки?

А все увидел они сами прописали в коде
Код
document.write("<a rel=”nofollow” href='http://www.liveinternet.ru/click' "+
« Последнее редактирование: 05.11.2011, 13:28:43 от skai »
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #55 : 30.10.2011, 23:52:56 »

Странно в коде нет ноиндекс а на самом деле они есть.. :-X
потому что речь идет о pb_spoiler.php


$html .= '<noindex><a href="'.$link.'" target="_blank" rel="nofollow">'.$matches[1].'</a></noindex>';
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: Как закрыть ссылку в материале? Noindex
« Ответ #56 : 30.10.2011, 23:53:34 »
Тоесть ноиндекс есть в плагине кнопки?
Нет. Вот тот архив который я скидывал, ссылки формируются в нем, исправлять там.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #57 : 31.10.2011, 00:30:32 »
No Comment ))) :D



Спасибо
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

lost83

  • Захожу иногда
  • 91
  • 2 / 0
Re: Как закрыть ссылку в материале? Noindex
« Ответ #59 : 31.10.2011, 00:43:25 »
всё получилось у вас? :)
Ага))))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод изображения в материале - как лучше для seo?

Автор yalo

Ответов: 1
Просмотров: 2603
Последний ответ 28.03.2025, 06:29:35
от azm1n
Каким плагином можно закрыть внешние ссылки?

Автор gorbi_U

Ответов: 4
Просмотров: 2682
Последний ответ 25.02.2023, 02:29:35
от olegon
Закрыть страницу со знаком? от индексации

Автор Андрей Нестеров

Ответов: 2
Просмотров: 1306
Последний ответ 28.02.2022, 22:38:44
от Андрей Нестеров
noindex для ссылок на документы?

Автор Игарь

Ответов: 14
Просмотров: 1664
Последний ответ 15.09.2020, 16:57:17
от rsn
Убрать ссылку в Переключателе языков при отсутствии связи

Автор Gerostrat

Ответов: 2
Просмотров: 1680
Последний ответ 25.06.2019, 14:41:30
от Gerostrat