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

Puzo

  • Захожу иногда
  • 75
  • 2 / 0
Как сделать сайт без www
« : 25.11.2010, 12:33:05 »
Добавил сайт в Яндекс вебмастер  с www
как сделать чтобы был без www

в яндексе все страницы с www, а на сайте без

при добавлении этого сайта без www в Яндекс вебмастер выдает - Сайт является зеркалом
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Как сделать сайт без www
« Ответ #1 : 25.11.2010, 15:20:11 »
что если удалить тот, что с www и попробовать добавить заново без www?
*

Magnum

  • Захожу иногда
  • 269
  • 14 / 0
  • magnumblog.space
Re: Как сделать сайт без www
« Ответ #2 : 25.11.2010, 18:06:02 »
что если удалить тот, что с www и попробовать добавить заново без www?

абсолютно никакой разницы нет для поисковой оптимизации, как по мне. Будь он с www или без него.
То что янедекс вебмастер говрит, то это просто у него в поиске есть такие страницы который были проиндексированы первыми и не содержали www. К тому же если страниы не были запрещены в файле robots.txt или не отдавали поисковику ошибку 404, он не даст удалить.
Если же вы все же хотите убрать www перед адресом, то добавьте в файл .htaccess Соответствующую директиву. Данный вопрос уже обсуждался на форуме и тему даже по моему где то закреплена!
Если же вы не используте поиск (из-за лени или какой либо другой причины), то вот вам ониый код:
Код
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.site\.com [NC]
RewriteRule ^(.*) http://www.site.com/$1 [R=301,L]

Этот код для добавления к адресу где нет www - этого самого www
Для того что бы сделать противоположное проявите логику.

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

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: Как сделать сайт без www
« Ответ #3 : 25.11.2010, 21:12:29 »
абсолютно никакой разницы нет для поисковой оптимизации, как по мне. Будь он с www или без него.
То что янедекс вебмастер говрит, то это просто у него в поиске есть такие страницы который были проиндексированы первыми и не содержали www. К тому же если страниы не были запрещены в файле robots.txt или не отдавали поисковику ошибку 404, он не даст удалить.
Если же вы все же хотите убрать www перед адресом, то добавьте в файл .htaccess Соответствующую директиву. Данный вопрос уже обсуждался на форуме и тему даже по моему где то закреплена!
Если же вы не используте поиск (из-за лени или какой либо другой причины), то вот вам ониый код:
Код
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.site\.com [NC]
RewriteRule ^(.*) http://www.site.com/$1 [R=301,L]

Этот код для добавления к адресу где нет www - этого самого www
Для того что бы сделать противоположное проявите логику.

И самое главное! Не беспокойтесь на счет яндекса, он через определеное время сделает все как нада. У меня тоже такое было, но через пару месяцев он пере индексировал сайт и все стало на свои места!
я бы вам за ваше все будет как надо голову оторвал... :-)
вы потрудитесь прочитать документацию по яндексу... и не будете писать такую глупость... Из-за этого сайт вообще может выпасть из индекса...

а для топикастера...
robots.txt
пропишите директиву Host: site.ru

Как только яндекс поклеет домены... приблизительно через месяц... у вас будет основным без www
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Puzo

  • Захожу иногда
  • 75
  • 2 / 0
Re: Как сделать сайт без www
« Ответ #4 : 26.11.2010, 06:11:59 »
пропишите директиву Host: site.ru

да, прописано

т.е остается только ждать?
дело в том что он (яндекс) не хочет кушать Sitemap, от Xmap т.к она без www

как мне лучше, добавить www или ждать пока он склеит домены и сам схавает карту?
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: Как сделать сайт без www
« Ответ #5 : 26.11.2010, 08:33:04 »
да, прописано

т.е остается только ждать?
дело в том что он (яндекс) не хочет кушать Sitemap, от Xmap т.к она без www

как мне лучше, добавить www или ждать пока он склеит домены и сам схавает карту?
а что мешает в ручную добавить яндексу карту сайта?? там помоему можно и с www и без www прописать... и собственно уж карта сайта ему точно по барабану с чем она)
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Как сделать сайт без www
« Ответ #6 : 26.11.2010, 08:59:24 »
... Из-за этого сайт вообще может выпасть из индекса...

Я тоже обошелся:
Код
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site\.ru
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]

Яндекс, Google и прочие прекрасно проиндексировали сайт. В поиске на первом месте. И теперь он у них виден как сайт с www, хотя за пару месяцев раньше до этого он как раз был без www.
И robots.txt вообще не трогал.  8)
*

Magnum

  • Захожу иногда
  • 269
  • 14 / 0
  • magnumblog.space
Re: Как сделать сайт без www
« Ответ #7 : 26.11.2010, 12:29:40 »
я бы вам за ваше все будет как надо голову оторвал... :-)
вы потрудитесь прочитать документацию по яндексу... и не будете писать такую глупость... Из-за этого сайт вообще может выпасть из индекса...
ЫЫЫЫ нуну..
Если бы ты читал внимательно то понял, что я писал это к тому, что нет ризницы какой домен продвигать с www или без него, главное их склеить и в панели Я.Вебмастер указать зеркала сайта, что бы он о них знал и склеил их. Вот линк - http://help.yandex.ru/webmaster/?id=995297
Там ни слова о том, что если не сделать ничего или что то не так то сайт выпадет из поиска! Там наоборот говорится, что Яндекс сам склеит и возьмет один из адресов за главный!

Да сайт с www и без него, могут иметь разные ТИЦ и PR. Для этого и склеиваются домены =)

Еще раз скажу, что сайт из поиска в яндексе намеренно не нарушая правил выбить очень тяжело. А так как знать.. А  там как знать, Яндекс, это вообще отельный разговор. Сегодня они говорят одно, а завтра сменят алгоритм и все будет с точностью до наоборот!

А вообще я и не говорю что я СЕО гуру.
« Последнее редактирование: 26.11.2010, 12:41:20 от Magnum »
Я не волшебник. Я всего лишь учусь!
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: Как сделать сайт без www
« Ответ #8 : 27.11.2010, 09:00:18 »
Magnum
сами же дали ссылку где про директиву хост пишет почти в каждом пункте и ни слова не говорится о редиректе... Помоему просто вы путаете редирект и склейку доменов... :-)

jem777 Яндекс по умолчанию сайту присвает www. В гугле это меняется через панель вебмастера.
Человек спросил, как правильно это сделать, а вы говорите как возможно это прокатит. Зачем терять страницы в индексе и ссылки на сайт. Если можно правильно сделать и поклеить все ссылки и страницы??))

Кстати о выпадении из индекса из мануала яндекса:

Цитировать
Я настроил серверный редирект на новый домен, и сайт пропал из поиска. Почему?

Скорее всего, это произошло потому, что новый домен уже является неглавным зеркалом. Старый сайт пропадает из поиска, так как возвращает роботу код перенаправления, а новый еще не успел стать главным зеркалом и появиться в поиске.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

Magnum

  • Захожу иногда
  • 269
  • 14 / 0
  • magnumblog.space
Re: Как сделать сайт без www
« Ответ #9 : 27.11.2010, 13:02:33 »
Что говорит о том, что в следующий заход поисковика на сайт и после пере индексации он снова появится в выдаче =)
Я не волшебник. Я всего лишь учусь!
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
Re: Как сделать сайт без www
« Ответ #10 : 27.11.2010, 14:15:05 »
Что говорит о том, что в следующий заход поисковика на сайт и после пере индексации он снова появится в выдаче =)
там сказано где то когда будет новый заход ;-) он может и через год к вам зайти... ну если вы считаете что ваш метод правильный делайте пожалуйста только других не учите.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор Kooll5

Ответов: 31
Просмотров: 7433
Последний ответ 07.02.2023, 13:59:57
от Ратник
Как сделать правильный редирект

Автор gadjet

Ответов: 25
Просмотров: 13295
Последний ответ 17.05.2022, 01:22:12
от kabban
Один сайт, доступный через два домена (зеркало?)

Автор slepoy

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

Автор zeus07

Ответов: 8
Просмотров: 1021
Последний ответ 19.11.2021, 13:10:41
от zeus07
Ссылки на мой сайт не подтягивают фото

Автор MbJaws

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