Создан по просьбе romantaran@eikon.org.ru ( http://www.drupal.ru/node/3298 )
Вот что он писал (зачем нужен этот модуль):
>> ...стандартный ping.module выдает лишь общий пинг для всего сайта, чего совершенно >>недостаточно. Вот что мне, в частности, написали из яндексовской службы:
>>
>>Для того, чтобы мы могли включить вас сервис в рейтинг блог-хостингов, мы должны быть уверены, что полно и быстро индексируем его (иначе цифры для него не будут верными). При вашем объёме записей в день, наилучшим способом добиться этого было бы организовав отправку нам сообщений о каждой новой записи по протоколу Weblogs.Ping (http://www.xmlrpc.com/weblogsCom) на адрес http://ping.blogs.yandex.ru/RPC2. <…> пинг должен указывать именно на тот журнал, который обновился. При этом, по адресу журнала должен быть прописано автоопределение (link rel) для rss этого журнала. Тогда всё будет работать правильно.
Мне задача показалась несложной, к тому же было интересно поработать с пингами - так и родился этот модуль.
С целью тестирования пришлось написать модуль для приема (с сохранением и дальнейшим показом) этих самых пингов. Наверное есть готовые модули для этого, я не искал.
P.S.
Поздравляю Всех с наступающим Новым Годом!
Вложение | Размер |
---|---|
![]() | 2.33 КБ |
![]() | 2.24 КБ |
Комментарии
сервер не дает скачать не браузером не качалкой
Сорри, настройки на drupal.ru мешали. Теперь можно скачать.
--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!
Супер! Спасибо!
Но есть пара вопросов.
Хм… Что-то никаких признаков пинга…
Как я понял, модуль посылает пинг после создания/редактирования/удаления ноды, а в логи записывает только отрицательный результат?
Почему-то страница ping_test остается пустой.
>>Что означает: "При этом, по адресу журнала должен быть прописано автоопределение
>>(link rel) для rss этого журнала" ? Где это прописано?
Я так понял, что в странице блога должен присутствовать тэг, дающий ссылку на RSS-ленту.
В Drupal'е это есть:
<link rel="alternate" type="application/rss+xml" title="Дневник пользователя admin RSS - ленты" href="/blog/1/feed" />
>>У меня на все URL блогов прописаны псевдонимы вида "http://mysite.com/username",
>>а для RSS — "http://mysite.com/username/feed".
>>Сможет ли Яндекс определить имя пользователя и адрес RSS?
Модуль посылает Яндексу POST-запрос такого вида:
В описании формата ( http://www.xmlrpc.com/weblogsCom ) нет поля для указания имени пользователя,
и Яндекс не просит его добавить.
Чтобы изменить путь с http://ИМЯ_САЙТА/blog/{id_пользователя} на http://ИМЯ_САЙТА/{имя_пользователя}, надо
изменить строку 57 в файле yandex_blogs.module:
<value>'.$base_url.'/blog/'.$uid.'</value>
на
<value>'.$base_url.'/'.pathauto_cleanstring($account->name).'</value>
Естественно, если вы используете модуль pathauto и он включен.
Я подозреваю, что имя блога в формате "Дневник пользователя admin", может не совсем понравится Яндексу,
и он захочет увидеть еще и имя сайта, или его слоган. Спросите у службы Яндекса, как им лучше.
>>Хм… Что-то никаких признаков пинга…
>>Почему-то страница ping_test остается пустой.
Модуль pings_test предназначался для регистрации любых пингов,
приходящих по адресу http://ИМЯ_САЙТА/pings_test_ping
Чтобы yandex_blogs.module пинговал pings_test.module, надо изменить в первом строку 62:
$res = drupal_http_request('http://ping.blogs.yandex.ru/RPC2', array("Content-Type" => "text/xml"), 'POST', $req);
на
$res = drupal_http_request($base_url.'/pings_test_ping', array("Content-Type" => "text/xml"), 'POST', $req);
>>Как я понял, модуль посылает пинг после создания/редактирования/удаления ноды, а в логи записывает
>>только отрицательный результат?
да, по аналогии с модулем ping
Большое спасибо!
1. Будет ли модуль пинговать при публикации с блог-клиента?
2. В какой момент модуль выдаст пинг при автоматической публикации при помощи модуля Scheduler? Во время отправки формы или во время перевода статьи из статуса "неопубликовано" в статус "опубликовано"? Это особенно важно для стабильного поддержания рейтинга сайта.
>>1. Будет ли модуль пинговать при публикации с блог-клиента?
Да, должны работать, т.к. там вызываются функции node_save и node_delete, ведущие к срабатыванию пингов.
>>2. В какой момент модуль выдаст пинг при автоматической публикации при помощи модуля Scheduler?
По-умолчанию действия scheduler.module не приводят к пингам. Чтобы пинг срабатывал, надо в yandex_blogs.module добавить функцию:
например, начиная с 8-й строки.
Модуль Scheduler мне не понравился, т.к. возможна такая ситуация, приводящая к 2 пингам подряд, хотя они совсем не нужны: нода распубликована, установлены времена для публикации, а затем для распубликации; если запуск cron'а произойдет только после времени, установленного для распубликации, то scheduler.module подаст команду для пинга 2 раза подряд, но в результате статус ноды не изменится!
P.S.
Хочется еще поработать над логикой посылки пингов, но это уже наверное в Новом Году, тогда же и включу строки выше в модуль.
с 5-кой никто еще этот модуль не проверял?
Ждем очередного релиза…
Сейчас мой сайт работает без этого модуля, но в рейтинге Яндекса всё равно появляется, правда, как будто, на сутки позже. Похоже, Яндекс ориентируется на Пингоматик, которого пингует Друпал.
а можешь выложить на скачивание саму библиотеку xmlrpc.inc
Спасибо!
Из дистрибутива же можно взять.
а можно еще файл common.inc или ссылку где весь source от drupal скачать, а то у меня что-то не получается...
Дык, здесь все скачивают: http://drupal.org/drupal-5.1
все ж таки, спрошу
для 5-й версии нет этого модуля?
у меня нет.
http://www.drupal.ru/node/7083
а это не решает нашу проблему?
не пробовал еще
Ничего нового для пинга Я не появилось?
Resistant, вт, 26/02/2008 - 22:51
0 Ничего нового для пинга Я не появилось?
http://www.drupal.ru/node/7083