HOME  »  , , , ,  » はてなアンテナの更新リストを表示させる。

はてなアンテナの更新リストを表示させる。

2005/02/25 | Comments & Trackbacks : 5

苦節2時間

この前うちのサイトデザインを参考にしてくれた奇特なステキなお方、としさんのサイトなんですけど、よーく見たら見た事ない物がサイドバーについてる?
「はてなアンテナ」の更新状況のお知らせなんですけど、MyBlogListやBlogPeopleと表示形式が一緒なんですよ。
こんなアイテム配布されてたっけ?と思ってはてなを調べたんですけどなかったので、としさんに某所で質問した所、ご親切にも記事あげして下さったうえに、「できねーだよ」との叫びにも親切に対応してくださいました。ありがたや。

と言う事で、やり方を自分用に覚え書きしておきたいと思います。

参考サイト

※ この技が使える人は「利用しているサーバーがphpに対応している人」です。

手順

  1. 「コトウユウキの(う)らぶろぐ」さんで配布されている「hatena2js」のソースを頂いてくる。コピペした内容をとりあえずテキストエディタか何かに貼り付ける。
  2. ソースの改変を行う。
    以下は私用のソース。色つきは改変した部分です。

    [hatena2js.php]
    <?php
    // このスクリプトはEUCです。申込
    ob_end_flush();
    $hina = file("http://a.hatena.ne.jp/【自分のはてなIDを入れる】/source?mode=hina");
    $duration = 6 * 60 * 60;
    $uplink = "<img src=\"http://blog.livedoor.jp/jii0067/1c5ee760.gif\">"; 
    
    echo "<!--\n";
    echo "drawHatena( '<div class=\'blogrollmain\'>'+";
    
    foreach ($hina as $var) {
    preg_match("#<!--HINA_OK (\d{4})/(\d{2})/(\d{2}) (\d{2}):(\d{2}):(\d{2}).*?--><a href=\"(.+?)\">(.+?)</a><br>#i", $var, $t);
    list(,$dy,$dm,$dd,$dh,$di,$ds, $uri, $blog) = $t;
    $utc = mktime($dh,$di,$ds,$dm,$dd,$dy);
    
    $update = date("H:i:s", $utc)." [JST] on ".date("l, F d", $utc);
    $new = time() - $utc;
    $name = mb_convert_encoding($blog, "utf-8", "auto");
    
    if($new < $duration) {
    echo "'<a href=\'$uri\' title=\'Last updated: $update\' target=\'_blank\' >$name</a>' + '$uplink' + '<br />' +";
    } else {
    echo "'<a href=\'$uri\' title=\'Last updated: $update\' target=\'_blank\' >$name</a>' + '<br />' +";
    }
    }
    
    echo "'</div>' + ''); \n";
    echo "function drawHatena(s){ document.write(s); }\n";
    echo "// -->";
    
    ?>
    
    [MainIndex組み込み部分ソース]
    <script type="text/javascript" src="hatena2js.php"></script>
    
    • 「$hina」で自分のはてなIDを設定する。
    • 「 $duration」で何時間前までに更新されたサイトにお知らせマークを付けてあげるかを指定します。
      時間は秒数で指定されている(=hour×minute×second)ので、頭の数字を調整してあげればOK。
    • 「$uplink」は元ソースではテキスト(New!)になっていますが、画像で更新を知らせたい場合はimgタグを用いてファイルを指定する必要があります。
      単純にこのソースのアドレス部分をそっくり入れ替えてあげれば大丈夫だと思います。
    • 文字コードがUTF-8の場合に発生する文字化け対策のため、18行目「mb_internal_encoding()」を「”auto”」と書き換える。
    • 私はデフォルト通りですが、32行目「’$uplink’ 」と「’<a href=\’$uri\’~」を入れ替えると、更新マークがサイト名の前に表示されるようになります。
      そのままだとサイト名の後ろに表示。

    ココが一番大事なのですが、一番上と削除部位の確認のを絶対に忘れないでください。忘れると真っ白な画面しか出てこないので、本人が真っ白な灰になると言う。

  3. このファイルに適当な名前(ここでは「hatena2js.php」とする)をつけて、自分のサーバーにアップロードする。
  4. リストを表示させたい所に、以下のように書き込む。
    <script type="text/javascript" src="【さっきのphpをアップロードした場所のパス】hatena2js.php"></script>
    このサイトの場合:<script type="text/javascript" src="http://blog.open-arms.biz/hatena2js.php"></script>

後は再構築かければできあがりです。
貴重な情報を本当にありがとうございました。

Google Adsense

Comments & Trackbacks : 5

Response from とし2005 年 2 月 25 日 10時04分

どもども。うまくできて良かったです。
内心冷や冷やしてましたよー。

で、ですね。
はてなからデータを取ってくるところと整形する内部的な処理はphpでやってますが、出力するところはJavaScriptなので、サーバがphpを実行することができればページ自体はphp化されていなくても動きます。

じつはphp化されていればJavaScriptを挟む必要がないってことですね(苦笑)
ウチの解説の方にも付け加えておきますー。

ではでは。

追伸:ラブラブ道中をお楽しみくださいませ~♪

Response from もそ2005 年 2 月 28 日 14時34分

■としさま
ああ、やっぱりそうだったんだ(苦笑)。
元ページ見たらそんなような事が書いてあったので、phpのままでもできそう?とは思ってて、初めはphpのまま動かすバージョンでやってみたんですよ。
でも他の所が間違ってて動かなかったのを、phpのままのせい?と勘違いしてJavaバージョンにやりかえて、その後問題点を修正したので、もうまんまパクリバージョンでいいやって書いちゃったですよ。

その辺、私も書き換えておきますね。
わざわざ連絡ありがとうございます。

Response from I c e c r e a m - n e t . c o m2005 年 3 月 27 日 11時22分

はてなアンテナをサイドバーに表示

今日の覚え書き: はてなアンテナの更新リストを表示させる。を参考に、 右サイドバ…

Response from 情理2005 年 9 月 30 日 6時01分

ブログにアンテナ

サイトにアンテナを表示させてみた。 参考にしたサイトは今日の覚え書きのはてなアン…

pingback はてなアンテナ - - うあいうにっき2010 年 2 月 18 日 18時27分

[...] はてなアンテナをサイドバーに組み込んでみました。(参考にさせてもらったサイト) はてなアンテナがどういうものかといいますと、 もしはてなアンテナに登録したサイトが更新さ [...]