Плагин пингатор для оправки сообщений Яндексу и Google

Прочел тут топик и подумал, что у ребят мысль движется в правильном направлении, но вот реализуют они её не совсем верно. И поэтому написал свой плагин для отправки сообщения яндекс блогам и гуглу, что содержимое на сайте появился новый топик.

К яндексу плагин оправляет сообщение по RPC XML (http://ping.blogs.yandex.ru/RPC2), а к google просто по их адресу (http://blogsearch.google.com/ping) с указанием url топика.

Хочу обратить ваше внимание, что для работы плагина потребуется php модуль curl , позаботьтесь о том, что он был. Плагин предназначен для версии 0.4.2.

Так же делается попытка разделить процессы создания/обновления топика и оповещения о нем посковиков. Если у вас включен php модуль PCNTL, то отправка сообщений к поисковикам будет выполняться в отдельных процессах.

Линк на сам модуль. Если плагин пригодиться сообществе, то я его добавлю в основной репозитарий. Плагин уже действует у меня на сайте.

62 комментария

avatar
Спасибо. Пока не тестил, но однозначно надо.
avatar
огромное спасибо!!!
avatar
Что-то ваш сайт лежит:(
avatar
Проблемы были, поправил щас все работает
avatar
Ссылка не работает ;(
avatar
Поставил, спасибо. А как убедиться, что плагин работает нормально?
avatar
Поставить на тестовую машину. Поставить http снифер и убедиться, что запросы уходят.
avatar
Ну с тестовой всё понятно, а на рабочем-то хостинге как? :)
avatar
У Яндекса есть сервис мониторинга пингов: blogs.yandex.ru/pings/
У Гугля не знаю
avatar
Можешь поподробнее рассказать что и как он пингует, по времени или при добавлении топика?

Как Я понял через файл конфинга можно настраивать что и куда пинговать.

Для примера rss канал blog Я заменил на blogfulltext(это тот же канал только с полным текстом топиков), как добавить пинги rss канала комментариев?

За плагин респектище!!! Готов поговорить о возможной доработке, то есть подкинуть идей для совершенствования(в основном для Яндекса пока немного, но и с гуглом разбираться начинаю).

Кстати для тех кто поставил плагин. Я у себя сделал для Яндекса и гугла отдельную rss ленту, а все ленты запретил в робот тексте. Теперь Яндексом и гуглом при пингах читается только нужные ленты, правда до сих пор Я в ручную пинги отправлял.
avatar
Отправка пинга происходит при добавлении и обновлении топика, спасибо автору.
avatar
при обновлении топика вышла ошибка:

Warning: http_build_query() [function.http-build-query]: Parameter 1 expected to be Array or Object. Incorrect value given in /home2/u75623/lavkasovetov/plugins/empblogping/classes/modules/empping/Empping.class.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at /home2/u75623/lavkasovetov/plugins/empblogping/classes/modules/empping/Empping.class.php:31) in /home2/u75623/lavkasovetov/engine/include/function.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home2/u75623/lavkasovetov/plugins/empblogping/classes/modules/empping/Empping.class.php:31) in /home2/u75623/lavkasovetov/engine/include/function.php on line 216
avatar
Обновил архив, должно решить проблему
avatar
Помогло. Теперь ошибок не выдаёт.
avatar
При добавлении топика та же ошибка.
комментарий был удален
avatar
Это демонстрация XSS?
avatar
Это не совсем xss, т.к. куи угнать этим невозможно.
avatar
А Вы действительно понимаете, что такое xss? :)
avatar
А какую строчку нужно добавить в конфиг чтобы можно было пинговать не только при добавлении топика в блог, но и при добавлении сообщения в Микроблог rss у него site.ru/rss/micro
avatar
При попытке опубликовать топик вылазиет данная ошибка

Notice: Undefined index: blog in /www/site.ru/classes/modules/topic/entity/Topic.entity.class.php on line 113

Fatal error: Call to a member function getType() on a non-object in /www/site.ru/plugins/company/classes/modules/topic/entity/Topic.entity.class.php on line 20
avatar
аналогично. строка 20 собственной персоной:
if ($this->getBlog()->getType()=='personal') {
avatar
Версия лайвстрита какая?
avatar
0.4.2
avatar
0.4.2
avatar
а как вылечить?
avatar
А у меня такая ошибка

Notice: Undefined index: blog in /home/classes/modules/topic/entity/Topic.entity.class.php on line 113

Fatal error: Call to a member function getUrl() on a non-object in /home/plugins/niceurl/classes/modules/niceurl/Niceurl.class.php on line 125

Версия последняя.
avatar
Подтверждаю данную ошибку. Правда у меня в виде
Notice: Undefined index: blog in /var/www/site.com/classes/modules/topic/entity/Topic.entity.class.php on line 113 
Fatal error: Call to a member function getType() on a non-object in /var/www/site.com/classes/modules/topic/entity/Topic.entity.class.php on line 118 
avatar
curl модуль стоит. ошибка возникает при добавлении новости.

Если у вас включен php модуль PCNTL, то отправка сообщений к поисковикам будет выполняться в отдельных процессах.
Этого нету, но я так понял он и не обязателен
avatar
В принципе. Если пинг отправляется при каждом добавлении и обновлении топика то незачем.
avatar
Пинг-сервис яндекса периодически лежит. Если делать пинги синхронно то можно повешать площадку/хостинг. Как вариант: добавлять инфу о пингах в базу а потом отдельным демоном скармливать яше.

Будет время допишу плагин — будет ещё несколько фишичек :)
  • kid
  • 0
avatar
При открытии этого топика выдает такое:


Сайт ломают?
avatar
Ага, все, уже вижу.
avatar
Так уязвимость существует тем не менее?
Где хотфикс? Где орт?
avatar
ну… можно например закомментить строчку #61
$this->oJevix->cfgAllowTagParams('object', array('width' => '#int', 'height' => '#int', 'data' => '#link', 'type' => '#text'));

в файле /engine/modules/text/Text.class.php
avatar
Что то не могу понять работает или нет пингатор.
В поиске по блогам так и не нашёл статей которые пингатор должен был отправить.
Кто знает как точно проверить? Отправляет ли и что.
avatar
Конфликтует с NiceURL
Notice: Undefined index: blog in /classes/modules/topic/entity/Topic.entity.class.php on line 113

Fatal error: Call to a member function getUrl() on a non-object in /plugins/niceurl/classes/modules/niceurl/Niceurl.class.php on line 125
avatar
почему плагин ещё не в репозитории?
avatar
Автор самого плагина не так часто появляется. Может просто времени пока не было.
Кстати Ты не можешь подсказать как решить проблему с NiceURL.
А плагину стоит попасть в репозиторий.
avatar
не поверите, только что подумал — а есть ли такой уже готовый плагин.
и тут — на первой странице

спасибо :)
avatar
кстати, подтверждаю, пинг работает, ко мне пришел бот сразу после поста
avatar
Ты NiceURL используешь?
avatar
не

не вижу смысла
avatar
Он у меня был с самого начала. Теперь не получается отказаться. Ссылки такие в индексе. Они ведь станут недоступны.
avatar
Такая же проблема. Ждём её решения.
550+ url в индексе не хочется убивать. А можно ли отключить niceurl и как-нибудь оставить возможность доступа по старым ссылкам?
avatar
Проблема с niceurl будет исправлена
avatar
Это вопрос =)
avatar
Присоединяюсь к вопросу)
avatar
Автор выложил баговый плагин и смылся.
avatar
Во первых автор сделал доброе дело!
Во вторых Он не мог предугадать конфликт с плагином которым, вероятно, не пользуется.

Я как и Ты хочу решения проблемы с этим плагином. Но так негативно говорить тоже не верно.
avatar
Здесь как раз подходит слово «смылся». Его нет уже неделю, почти сразу же после того, как выложил плагин. Приди и напиши хотя бы — поправок не будет.
avatar
имхо, если так надо возьми и пофикси
не вижу повода почему автор «должен» что-либо фиксить учитывая бесплатность плагина…
avatar
avatar
avatar
Да, таже ошибка:

Notice: Undefined index: blog in /home/name/data/www/sitename.ru/classes/modules/topic/entity/Topic.entity.class.php on line 113
Fatal error: Call to a member function getType() on a non-object in /home/name/data/www/sitename.ru/classes/modules/topic/entity/Topic.entity.class.php on line 118
Как бороться кто-нибудь понял?
avatar
Это при добавлении поста. Причем сам пост добавляется и бот приходит. При добавлении комментария ошибки нет.
avatar
avatar
Кто — нибудь может сказать. Плагин пинги отправляет только при добавлении и обновлении статьи или через определённые промежутки времени тоже отправляет, если да то как это время настроить?
avatar
только при добавлении/редактировании статьи
avatar
пингатор для Яндекса в принципе не мог работать. т.к. в методе ping() xml request присваивался опции curl CURLOPT_POST. описание этой опции:
TRUE to do a regular HTTP POST. This POST is the normal application/x-www-form-urlencoded kind, most commonly used by HTML forms.
сейчас поправлю, проверю на совместимость с NiceUrl и выложу в паблик
avatar
О, благодарю мил-добр человек!
avatar
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.