Firefox2用検索プラグインの作り方
説明
OpenSearchフォーマットを利用した,Firefox2用検索プラグインの作り方です。
対応するブラウザ
- 対応するブラウザは以下です。
- Firefox 2
対応するサイト
POSTメソッドの検索フォームを使用するOPAC等。なお,GETメソッドに対応している場合は,こちらよりIE7との互換性のあるバージョン(Webブラウザの検索プラグインの作り方参照)を作成した方が無難かつ簡単です。なお,互換性版もそうですが,特殊なセッション管理などをしているOPACなどでは作りようがない場合もありますので注意。
OpenSearch
Web上での検索システムの統一的なフォーマット(を目指しているものの一つ)です。多数のサービス,ソフトウェアが対応しており,特に上記の最新のWebブラウザ2種が対応していることから,利用者向けのWebブラウザ用検索プラグインとしてはもっとも適当と思われます。
参考:Wikipedia
なお,OpenSearchでは,検索結果をRSSまたはATOM形式で返すのが正式ですが,単純にブラウザの検索プラグインとして使用するには必須でないこと,そうした仕組みを作ることはやや面倒を伴うことから,下記では通常のOPACの検索をWebブラウザの検索機能から直接行うためのプラグインの作成例を紹介します。
またOpenSearch形式自体はFirefox2のみでなくIE7でも対応していますが,IE7はPOSTメソッドのフォームに対応していない点,およびParam要素が使えない点で作り方が若干異なります。ここではPOSTメソッドのフォームに対応したFirefox2用の検索プラグインの作り方について説明します。(というかGETメソッド対応ならもっと簡単に作れます。Webブラウザの検索プラグインの作り方参照)
作成に必要な知識
XMLファイルの作成についての基本的な知識が必要です。といっても必ずUTF-8で作ること,ちゃんと構造化すること等ですが。また上記が分かってる方は問題ないと思いますが,htmlでのWebフォームの挙動についての知識もある程度あった方がよいです。簡単なCGIを組めるくらいだと最良。
プラグインのフォーマット
検索プラグインは以下のようなフォーマットで作成されます(例として筑波大のTulipsの検索プラグインを作成してみました)。
例(Tulips)
<?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>Tulips(筑波大蔵書検索)</ShortName> <Description>筑波大学附属図書館の蔵書検索です。</Description> <InputEncoding>UTF-8</InputEncoding> <Url type="text/html" method="post" template="http://www.tulips.tsukuba.ac.jp/mylimedio/search/input-find.do"> <Param name="databasetarget" value="local"/> <Param name="keyword" value="{searchTerms}"/> <Param name="keywordandor" value="and"/> <Param name="searchtarget" value="BK"/> <Param name="searchtarget" value="MG"/> <Param name="searchtarget" value="IS"/> <Param name="searchtarget" value="PA"/> <Param name="listOrder" value="TIA"/> <Param name="listLimit" value="20"/> </Url> <moz:SearchForm>http://www.tulips.tsukuba.ac.jp/mylimedio/search/search-input.do</moz:SearchForm> </OpenSearchDescription>
ちなみに例として筑波大のを使ったのは,たまたま職場と同じOPACのシステムを使っててカスタマイズしやすかっただけで他意はありません。また,例にあげたプラグインは下記のページでインストールできるように設定してありますのでFirefox2をご利用の方はお試しください。
http://myrmecoleon.sytes.net/tulips.html
フォーマットの説明
以下,フォーマットについて一行ずつ説明していきます。
<?xml version="1.0" encoding="UTF-8"?>
XMLの宣言文です。プラグインはXMLファイルとして作成します。なお当然XMLファイルなのでUTF-8の扱えるエディタ等で作成してください。UTFさえ扱えれば好きなものでいいです。一例として以下をあげておきます。
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
OpenSearchDescriptionの開始タグです。xmlsで指定している名前空間のうち,"http://a9.com/-/spec/opensearch/1.1/"はOpenSearch標準のもの,"http://www.mozilla.org/2006/browser/search/"はFirefox等のMozilla系ブラウザ用の拡張です。両方入れておいた方が無難です。
<ShortName>Tulips(筑波大蔵書検索)</ShortName>
検索プラグインのブラウザで表示される名前の指定です。"Tulips(筑波大蔵書検索)"の部分が名前となります。日本語も使えます。
<Description>筑波大学附属図書館の蔵書検索です。</Description>
検索プラグインの説明です。"筑波大学附属図書館の蔵書検索です。"の箇所を必要に応じて書き換えます。ブラウザ上ではあまり使われていないのでそれほど気にしなくてもいいです。
<InputEncoding>UTF-8</InputEncoding>
検索語句で使用する文字コードです。今回はUTF-8ですが,作成したい図書館のOPAC等にあわせて書き換えてください(Shift_JIS,EUC-JP等)。
ちなみにOpenSearchのフォーマットにはもう一つOutputEncodingというのがありますが,検索プラグインの用途として使う分には特に指定する必要はないみたいです。またImageというタグでプラグインを使用して検索するときに表示するアイコンを指定できるのですが,ファイルそのものをBase-64 にエンコードして貼り付ける必要があるのでこれも省略。
<Url type="text/html" method="post" template="http://www.tulips.tsukuba.ac.jp/mylimedio/search/input-find.do">
URLタグ以下は実際の検索フォームに投げる式の設定を行います。method="post" はフォームの送付方法の指定(通常は post か get)。template="〜" はフォームの内容を実際に投げる送付先のURLです。
<Param name="databasetarget" value="local"/>
ほか
検索パラメータの指定です。このパラメータの内容が指定のURLに送付されます。パラメータは必要に応じて複数かけます。重複も可能です。nameはパラメータの名称,valueはパラメータの値です。
htmlの分かる方ならば,<Url>のタグが<form>タグに対応し,<Param>のタグは<input>のタグに相当すると考えると分かりやすいと思います。name,valueも同様の役割をします。
なお特殊な値の指定として
<Param name="keyword" value="{searchTerms}"/>
があります。この{searchTerms}と記述されてる値は,ブラウザの検索窓に入力した値がそのまま代入されます。検索のキーワードなどはこの形式で値を指定します。
各パラメータについては該当のシステムに固有のものとなるので説明は省略します。
</Url>
Urlタグの閉じタグです。XML扱ってれば分かると思いますが必ずつけてください。
<moz:SearchForm>http://www.tulips.tsukuba.ac.jp/mylimedio/search/search-input.do</moz:SearchForm>
検索フォームが実際にあるURLです。省略しても問題ないです。
</OpenSearchDescription>
閉じタグです。必ずつけてください。
作成の手順。
まず,検索プラグインに作り替えたいOPAC等の検索フォームのページを確認してください。ページが分かったら,検索フォームの以下の点を調査します。
- 検索フォームのあるページの文字コード
- 送付先のURL,および送付方法(get or post)
- 送付する各パラメータの名前と値
(調査の仕方は後日書きます)
分かったら,上に書いたフォーマットをエディタにコピペして,上記の3点を
- 検索フォームのあるページの文字コード → <InputEncoding>...
- 送付先のURL,および送付方法(get or post) → <Url ...
- 送付する各パラメータの名前と値 → <Param ...
にそれぞれ入れてください。(<moz:SearchForm>は削ってもかまいませんが,残すなら検索フォームのあるページのURLを入れておいてください)
次に<ShortName>と<Description>を書き換えてください。単に図書館名やOPACの呼称を直すだけでもよいです。
最後にこれをUTF-8方式で保存(ファイル名はopac.xmlとかそんな感じでいいです)してください。
プラグインの作成は以上で終了です。