今さらながらMT4.1を使い始めてみました。
MTもいい加減に飽きてきて一時閉鎖していたんですが、やっぱりちょこちょこいじってないとダメだなあということで、久しぶりに再開。
元々、他人様とのコミュニケーションが目的ではなく、あくまで自身のナレッジ蓄積ツールとしてMTを捉えているので、バージョンが4.1になっても絶対に必要な機能というのは自分なりにあります。
その第一が検索機能。
それもサクサクと動く高速な全文検索機能が必要。
「あー、そういえばアレについて昔、なんかまとめた覚えがあるよなあ」というようなときに、こうした検索機能が威力を発揮するのです。
まあ、Googleのサイト内検索機能を導入すればそれでいいじゃんという説もありますが、個人的にはMT3で使っていたAjaxによる超高速検索システム(世界中の1%の人々へ版。元々は「暴想」で公開されたものですね)が気に入っていたので、せっかくだからそれを移植してみようかと。
基本的な設置方法は「今日のMovable Type:Ajaxを利用したMT用超高速検索システムはスゴすぎる!」で紹介されているとおりです。
ただし、MT4.1ではモジュール化がかなり進められているので、それにあわせてスマートに設置してみましょう。
1)必要なファイルのダウンロード
blog_ajax_search.zip
をダウンロードして展開します。含まれているファイルは以下の4つ。
適当な場所でOKですが、ここではルートディレクトリの下に「js」というディレクトリを作成。
ここに、blog_ajax_json_search.jsとprototype.jsの2つのファイルをアップロードします。
3)blog_ajax_json_search.jsのカスタマイズ
これも好みや必要に応じておこないます。187行目あたりのハイライト色を指定するところは、もっとも必要にして簡単なカスタマイズでしょうか。
4)XMLデータベース自動生成用のテンプレートを作成する
MTメニューのデザイン>テンプレート>インデックステンプレートから「インデックステンプレートを作成」を実行。
タイトルには、適当に「Ajax検索データベース」とでもつけます。でもって、内容部分にsearch_data.txtの中身をコピーします。出力ファイル名には「search_data.txt」と指定。再構築オプションにチェックが入っていることも確認します。
5)検索ウィンドウのウィジェットを作成
検索フォームはどこに仕込んでもいいのですが、せっかくなのでウィジェット化して今後の使い勝手をよくしておきましょう。
MTメニューのデザイン>テンプレート>ウィジェットから「ウィジェットテンプレートを作成」を実行。タイトルには「Ajax検索フォーム」とでもつけて、内容部分にsearch_form.txtの中身をコピーします。
ウィジェットができたら、ウィジェットセットから追加します。
6)結果表示エリアの指定
最後に、検索結果を表示するエリアを指定する必要があります。
じつはMTがモジュール化されたことで、この部分がちょっとわかりにくくなっています。私がおすすめするスマートな(と思う)やり方は、次の通り。
これで、エントリーが追加されたり再構築されるたびにXMLデータベースも自動的に更新され、超高速な全文検索が行えるようになります。
MTもいい加減に飽きてきて一時閉鎖していたんですが、やっぱりちょこちょこいじってないとダメだなあということで、久しぶりに再開。
元々、他人様とのコミュニケーションが目的ではなく、あくまで自身のナレッジ蓄積ツールとしてMTを捉えているので、バージョンが4.1になっても絶対に必要な機能というのは自分なりにあります。
その第一が検索機能。
それもサクサクと動く高速な全文検索機能が必要。
「あー、そういえばアレについて昔、なんかまとめた覚えがあるよなあ」というようなときに、こうした検索機能が威力を発揮するのです。
まあ、Googleのサイト内検索機能を導入すればそれでいいじゃんという説もありますが、個人的にはMT3で使っていたAjaxによる超高速検索システム(世界中の1%の人々へ版。元々は「暴想」で公開されたものですね)が気に入っていたので、せっかくだからそれを移植してみようかと。
基本的な設置方法は「今日のMovable Type:Ajaxを利用したMT用超高速検索システムはスゴすぎる!」で紹介されているとおりです。
ただし、MT4.1ではモジュール化がかなり進められているので、それにあわせてスマートに設置してみましょう。
1)必要なファイルのダウンロード
blog_ajax_search.zip
をダウンロードして展開します。含まれているファイルは以下の4つ。
2)jsファイルのアップロード
- blog_ajax_json_search.js 検索用スクリプトのソース。必要に応じてカスタマイズ
- prototype.js ライブラリのソース。いじる必要なし
- search_data.txt XMLデータベース作成テンプレートのソース
- search_form.txt 検索フォームテンプレートのソース
適当な場所でOKですが、ここではルートディレクトリの下に「js」というディレクトリを作成。
ここに、blog_ajax_json_search.jsとprototype.jsの2つのファイルをアップロードします。
3)blog_ajax_json_search.jsのカスタマイズ
これも好みや必要に応じておこないます。187行目あたりのハイライト色を指定するところは、もっとも必要にして簡単なカスタマイズでしょうか。
4)XMLデータベース自動生成用のテンプレートを作成する
MTメニューのデザイン>テンプレート>インデックステンプレートから「インデックステンプレートを作成」を実行。
タイトルには、適当に「Ajax検索データベース」とでもつけます。でもって、内容部分にsearch_data.txtの中身をコピーします。出力ファイル名には「search_data.txt」と指定。再構築オプションにチェックが入っていることも確認します。
5)検索ウィンドウのウィジェットを作成
検索フォームはどこに仕込んでもいいのですが、せっかくなのでウィジェット化して今後の使い勝手をよくしておきましょう。
MTメニューのデザイン>テンプレート>ウィジェットから「ウィジェットテンプレートを作成」を実行。タイトルには「Ajax検索フォーム」とでもつけて、内容部分にsearch_form.txtの中身をコピーします。
ウィジェットができたら、ウィジェットセットから追加します。
6)結果表示エリアの指定
最後に、検索結果を表示するエリアを指定する必要があります。
じつはMTがモジュール化されたことで、この部分がちょっとわかりにくくなっています。私がおすすめするスマートな(と思う)やり方は、次の通り。
つまり、DIVタグの開始と終了が別々のテンプレートに記述されるようにするわけです。
- MTメニューのデザイン>テンプレート>テンプレートモジュールから「ヘッダー」を選び、最後の部分に「<div class="result">」と追加する
- 同じくテンプレートモジュールから「フッター」を選び、最初の部分に「</div>」と追加する
これで、エントリーが追加されたり再構築されるたびにXMLデータベースも自動的に更新され、超高速な全文検索が行えるようになります。

