Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Firefox用Googleブログ検索プラグインを作ってみた

プラグインといっても、XMLファイルを書いてFirefoxに食わせるだけなんですね。とりあえず、Firefox1.5で対応しているSherlock形式とFirefox2.0から対応しているOpenSearch形式で作ってみました。

Sherlock形式の場合

Sherlockの詳細はこの辺を参照。

まずは、検索エンジンの情報を

<search
  name = "Googleブログ検索"
  description = "Googleブログ検索"
  sourceTextEncoding = "1"
  action = "http://blogsearch.google.co.jp/blogsearch"
  method = "GET"
  queryCharset="UTF-8"
>

<input name="hl" value="ja">
<input name="q" user>
<input name="btnG" value="%E3%83%96%E3%83%AD%E3%82%B0%E6%A4%9C%E7%B4%A2">
<input name="lr" value="lang_ja">

<interpret
  charset = "UTF-8"
>

</search>

のような感じで「blogsearch.src」として作成します。Sherlock形式ではjavascriptを使って登録することになるようなので、とりあえず以下のようなHTMLを作りました。ちなみに、はてなのものを参考にさせてもらいました :-)

<ul class="noliststyle">
<li><a href="javascript:addEngine('http://www.example.com/blogsearch.src','http://www.example.com/icon.png', 'Googleブログ検索','');">追加</a></li>
</ul>
<script type="text/javascript"><!--
function addEngine(engineURL, iconURL, engineName, categoryName) {
    if ((typeof window.sidebar == "object") &&
        (typeof window.sidebar.addSearchEngine == "function")) {
        window.sidebar.addSearchEngine(
            engineURL,
            iconURL,
            engineName,
            categoryName );
    } else {
        alert("サーチエンジンを追加するには、FirefoxかMozillaが必要です。");
    }
}
--></script>

このHTMLにブラウザからアクセスしリンクをクリックすると、検索バーに追加することができます。

OpenSearch形式の場合

OpenSearchの詳細はこの辺を参照。

まずは、検索エンジンの情報を記載したXMLファイルを作成します。ここではファイル名を「blogsearch.xml」としました。

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Googleブログ検索</ShortName>
<Description>Googleブログ検索で検索します</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8A//3/AP39/wD6/f8A+P3/AP/8/wD9/P8A+vz/AP/7/wD/+v8A/vr/APz6/wD4+v8A+/n/APP5/wD/+P8A+vj/AO/4/wDm+P8A2fj/AP/3/wD/9v8A9vb/AP/1/wD69f8A9PT/AO30/wD/8/8A//L/APnx/wD28P8A///+APj//gD2//4A9P/+AOP//gD//f4A6f/9AP///AD2//wA8//8APf9/AD///sA/v/7AOD/+wD/+vsA9/X7APr/+gDv/voA///5AP/9+QD/+/kA+e35AP//+ADm//gA4f/4AP/9+AD0+/gA///3APv/9wDz//cA8f/3AO3/9wD/8fcA//32AP369gDr+vYA8f/1AOv/9QD/+/UA///0APP/9ADq//QA///zAP/18wD///IA/fzyAP//8QD///AA9//wAPjw8AD//+8A8//vAP//7gD9/+4A9v/uAP/u7gD//+0A9v/tAP7/6wD/+eoA///pAP//6AD2/+gA//nnAP/45wD38eYA/fblAP/25AD29uQA7N/hAPzm4AD/690AEhjdAAAa3AAaJdsA//LXAC8g1gANH9YA+dnTAP/n0gDh5dIADyjSABkk0gAdH9EABxDRAP/l0AAAJs4AGRTOAPPczQAAKs0AIi7MAA4UywD56soA8tPKANTSygD/18kA6NLHAAAjxwDj28QA/s7CAP/1wQDw3r8A/9e8APrSrwDCtqoAzamjANmPiQDQj4YA35mBAOmefgDHj3wA1qR6AO+sbwDpmm8A2IVlAKmEYgCvaFoAvHNXAEq2VgA5s1UAPbhQAFWtTwBStU0ARbNNAEGxTQA7tEwAObZIAEq5RwDKdEYAULhDANtuQgBEtTwA1ls3ALhgMQCxNzEA2FsvAEC3LQB0MCkAiyYoANZTJwDLWyYAtjMlALE6JACZNSMAuW4iANlgIgDoWCEAylwgAMUuIAD3Vh8A52gdALRCHQCxWhwAsEkcALU4HACMOBwA0V4bAMYyGgCPJRoA218ZAJM7FwC/PxYA0msVAM9jFQD2XBUAqioVAIAfFQDhYRQAujMTAMUxEwCgLBMAnxIPAMsqDgCkFgsA6GMHALE2BAC9JQAAliIAAFYTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AsbGxsbGxsbGxsbGxsbGxd7IrMg8PDw8PDw8PUBQeJXjQYE9PcKPM2NfP2sWhcg+BzTE7dLjbmG03YWaV4JYye8MPbsLZlEouKRRCg9SXMoW/U53enGRAFzCRtNO7mTiAyliw30gRTg9VbJCKfYs0j9VmuscfLTFbIy8SOhA0Inq5Y77GNBMYIxQUJzM2Vxx2wEmfyCYWMRldXCg5MU0aicRUms58SUVeRkwjPBRSNIfBMkSgvWkyPxVHFIaMSx1/0S9nkq7WdWo1a43Jt2UqgtJERGJ5m6K8y92znpNWIYS1UQ89Mmg5cXNaX0EkGyyI3KSsp6mvpaqosaatq7axsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Image>
<Url type="text/html" method="GET" template="http://blogsearch.google.co.jp/blogsearch">
   <Param name="hl" value="ja"/>
   <Param name="q" value="{searchTerms}"/>
   <Param name="btnG" value="%E3%83%96%E3%83%AD%E3%82%B0%E6%A4%9C%E7%B4%A2"/>
   <Param name="lr" value="lang_ja"/>
</Url>
<moz:SearchForm>http://www.doyouphp.jp/</moz:SearchForm>
</OpenSearchDescription>

登録にはSherlock形式の場合と同様にjavascriptを使った登録もできますが、HTMLファイルに

<link rel="search" type="application/opensearchdescription+xml" title="Googleブログ検索" href="http://www.example.com/blogsearch.xml" />

と記載しておくだけで、検索バーから登録できるようになります。ビミョーですが、linkタグを記載したページを表示すると、検索バーの表示が変わります(赤い丸のところにマークが出ます)。

ちなみに、OpenSearchInternet Explorer 7でも対応しています。

手持ちのIE7では登録はできましたが、検索バーからの検索がうまくいきませんでした。書き方が悪いのかな。。。まあ、IE使ってないので問題ないんですが ;-)