[drupal]pingモジュール変更 / gooブログ通信簿

Submitted byshin on日, 2009-05-24 19:50

gooがブログ通信簿なるものをやっているとのことなので
私も遅ればせながら自分のサイトの通信簿を見てみようと思ったんだけど、これ、ブログからping(なんじゃそりゃ?)
を発行できないと駄目らしい。

■とりあえず pingoo.jpに登録

なんだか良くわからないので、WEBを検索していたらpingoo.jpというサービスを
見つけた。ここに更新情報が伝わると主要なサイトに更新情報を代理で伝えてくれるし、ここの伝えるのはRSSでいいらしい。
RSSはmixi用に立ち上げたので、これを使えばいいや!と軽くユーザ登録(個人&非商用はタダ)して様子を見たんだけど駄目。
⇒ここにも更新情報はpingを伝えないと駄目らしい

■やっぱり、まじめにpingを発行するようにする

Drupalの管理セクションを見ていたらpingモジュールというのがあるのでこれを使えば良さそう。
ただ、このpingモジュールは、良くわからないサイト(http://rpc.pingomatic.com)へのみpingを発行するので
ちょっとソースを変える必要がある
  1. pingモジュールの有効化
    "管理セクション/サイトの構築/モジュール/ping"をチェック
    ちなみに、"Ping 6.9 サイトが更新された際に他のサイトへ通知するようにします。"の説明
  2. pingモジュールの改造
    普段perlしか使わない私にはちょっとだけ面倒な作業
    modules/ping/ping.moduleのfunction ping_pingをちょこっと改造する。
    今回は、pingooとgooブログ通信簿の2つにpingを発行するように修正している
    function ping_ping($name = '', $url = '') {
      $hosts = array( 'http://pingoo.jp/ping/',                                                     ←追加
                      'http://blog.goo.ne.jp/XMLRPC' );                                             ←追加
      foreach ($hosts as $hh) {                                                                     ←追加
        /* $result = xmlrpc('http://rpc.pingomatic.com', 'weblogUpdates.ping', $name, $url); */  
        $result = xmlrpc($hh, 'weblogUpdates.ping', $name, $url);                                   ←更新
        if ($result === FALSE) {
          /*watchdog('directory ping', 'Failed to notify pingomatic.com (site).', array(), WATCHDOG_WARNING);*/
          watchdog('directory ping', 'Failed to notify {$hh} (site).', array(), WATCHDOG_WARNING);  ←更新
        }
      }                                                                                             ←追加
    }
    
で、暫く(新しく記事を登録して、cronを実行した後)して出てきたブログ通信簿が上記の通り。
# 全然面白くない‥