「Scuttle」に登録したサイトのfaviconを表示
年が明ける前に書きそびれたネタは書けるだけ書こう・・・ということで、久しぶりに「Scuttle」関連の話です。
アクセス解析のログに残っていたリンク元のソーシャルブックマークサイトを閲覧したら、ブックマークに登録したサイトの「favicon」が登録ページタイトルの手前に表示されるようになっていて、これを自分のブックマークサイトでもやりたいなぁ・・・と。
そこで、そのソーシャルブックマークサイトに表示されているfaviconのプロパティから画像のURLを確認してみたところ、「http://favicon.aruko.net/」というアドレスが含まれていました。
そのURLに行ってみたら、「Favicon API」という指定したURLのfaviconを取得してPNG画像に変換してくれるサービスでした。
「SimpleAPI」に代表される、最近人気のサイトのサムネイルを作成できるサービスのfavicon版です。
・・・ということで、自分のブックマークサイトでも利用することにします。
僕が使用しているScuttleのバージョンは「0.7.1」です。
以下の記述は、同環境での場合なのであらかじめご了承ください。
あとお決まりのセリフですが、記事の内容の実行により生じたいかなる損害に対しても当方は一切の責任を負いません。
「Favicon API」は「http://favicon.aruko.net/m/f/faviconを取得したいサイトのURL」と指定することで、faviconの画像を呼び出せます。
なので、「http://favicon.aruko.net/m/f/ブックマークしたURL」とすればScuttleでブックマークしたページのfavicon画像が呼び出せるわけです。
登録したブックマークの表示は「templates」フォルダの「bookmarks.tpl.php」ファイルで行っています。
そして、「bookmarks.tpl.php」の107〜113行目がブックマーク情報(ページタイトル・タグ等)の表示の処理になります。
僕の場合は登録したページのタイトルの前に画像を表示させたいので、ページタイトル表示処理部分に当たる108行目を編集します。
まずはオリジナルのソースの108行目。
echo '<div class="link"><a href="'. $address .'"'. $rel .' class="taggedlink">'. filter($row['bTitle']) ."</a></div>\n";
続いて変更分。
echo '<div class="link"><img src="http://favicon.aruko.net/m/f/' . $address . '" alt="' . filter($row['bTitle']) . '" width="16" height="16" border="0"> <a href="'. $address .'"'. $rel .' class="taggedlink">'. filter($row['bTitle']) ."</a></div>\n";
太字が追加部分です。
変数「$address」に登録したブックマークのURLが代入されています。
そこで、「Favicon API」に渡すURLに$addressを含ませて渡しています。