MT:アーカイブインデックスにAjax検索を取り入れて改造した

Movable Typeのアーカイブインデックスを改修してみました。Ajax JSON Searchの検索用テキストを再利用することでアーカイブリストを表示します。

Ajax JSON Searchって何よ、というかたは以下のページをご覧ください。で、設置した上でのハナシとして以下進めさせていただきます。

この検索で利用するテキストデータ(search_data.txt)なのですが、実はやってることが全アーカイブリストの出力。コレが意味するのは、コアの部分はアーカイブインデックスとほぼ同一内容のリストを作っているようなもの、ということになるのでは。。

それと、Ajax検索で検索ボックスに何も検索語をいれずに実行すると、全エントリが出力されるようになってます。入力されていないことをアラートで警告することもできるのでしょうが、恐らく敢えてやっていないのだと思われます。

以上のことをふまえて、search_data.txtを使い回ししてアーカイブ全出力するテンプレートをおもいついたというわけです(#くだらないけど)。

まずは、その元となるテンプレートを作ってみました。ページを開いて、ボタンを押すとエントリの検索が実行されて全エントリのリストが表示されます。

しくみは簡単です。blog_ajax_json_search.jsは本来、検索することが目的ですので、検索に関わる出力部分を少し改造します。具体的には、「○件ヒット」とかを表示しないように、build_search_result_html関数のところを書き換えます。

あとは、blogAjaxJsonSearch関数の第二引数を「,''」にして検索語のない状態として実行するだけです。

余談で、show_all_backnumbersみたいなのがあるのですけど、多分全リストを表示させるようなものだと思うのですがコレ動くんですかね。試してないですが。

てすとページでは、ボタン押下でblogAjaxJsonSearchを実行してますが、body要素のonload属性を使って実行のようにもできます。あえてやっていないのは、ナヴィゲーションリンクとかから、現在見ているページに流し込みできるんじゃね、みたいなハナシがしたかったからとか(#...ブツブツ)。

実際のページは、テンプレートのグローバルナビの「Archives」より確認できます。あとおまけでタグ検索の検索窓もつけてみました。以上です。

Comments:

コメントをどうぞ。書き込む場所が不明な場合やサイトオーナーへのコンタクトは、GuestBookまでお気軽にどうぞ

blog comments powered by Disqus