Movable Typeに検索フォームに任意の検索条件をつける「SearchConditionAppenderプラグイン」

Movable Typeに検索フォームに任意の検索条件をつける「SearchConditionAppenderプラグイン」

Posted at July 23,2012 12:55 AM
Tag:[MovableType, Plugin, SearchConditionAppender]

Movable Typeの検索フォームに任意の検索条件をつける「SearchConditionAppenderプラグイン」を公開します。

1.基本

Movable Typeの検索オプション徹底解説」で紹介したとおり、MTの検索にはいろいろな検索条件を指定することができます。

文字列AをカテゴリBでフィルタリングしたい場合は、検索フォームに次のように入力します。

A category:B

さらに、検索フォームに次のようなinput要素を追加しておけば、検索する人がカテゴリAを意識せずに検索させることもできます。

<input type="hidden" name="category" value="A" />

特定のカテゴリAを除いて文字列B検索したい場合には、次の指定で可能です。

A NOT category:B

が、この場合、上記のinput要素で設定することができないようです(もしかしたらできる方法があるかもしれませんがみつけられませんでした)。

2.プラグインの機能

「SearchConditionAppenderプラグイン」を利用すれば、ユーザーが意識せずに特定のカテゴリを除いた検索を行えるようになります。

もちろん上記以外の検索条件を指定することも可能です。

3.価格

MT5.x版:3000円/1インストールMT(税抜き)

購入前に評価版で必ず動作確認してください。確認後、上記の購入ボタンより入金いただければ、製品版を別途メールでお送りします。銀行振り込みを希望される方はお問い合わせのページよりご連絡ください(お振込み手数料はご負担願います)。

4.評価版プラグインのインストール

下記のリンクをクリックして、評価版のプラグインアーカイブをダウンロードします。

SearchConditionAppender_0_01.zip

プラグインアーカイブを展開し、中にあるSearchConditionAppenderフォルダごと、Movable Type のアプリケーションディレクトリのpluginsディレクトリにアップロードします。

システム管理画面のプラグイン設定画面で、「SearchConditionAppender~」が表示されればインストール完了です。

プラグイン設定画面

評価版は30日無償でご利用になれます。残り日数はシステム管理画面のプラグイン設定画面より確認できます。

残り日数

5.プラグインの設定

プラグインを適用したいブログ管理画面の「ツール」→「プラグイン」→「SearchConditionAppender~」→「設定」で、検索条件を設定します。

プラグイン設定画面

設定した検索条件は検索フォームに入力した末尾に追加して検索条件となります。

たとえば、カテゴリBを検索対象から除外したい場合は、

NOT category:B

と設定します。

これで実際の検索では、

検索文字列 NOT category:B

という条件で、カテゴリBが除外した形で検索が実行されます。

6.「検索」ウィジェットテンプレートの修正

「検索」ウィジェットテンプレートについて、下記の3ヶ所を修正してください。

まず、input要素の送信ボタンに、id属性「exec_search」を追加します。

…前略…
           <input type="hidden" name="limit" value="<$mt:SearchMaxResults$>" />
            <input id="exec_search" type="submit" accesskey="4" value="検索" />
        </form>
    </div>
</div>
…後略…

次に、テキストフィールド用のinput要素をMTSearchConditionInputThunkタグに置き換えます。

変更前

<div class="widget-search widget">
    <h3 class="widget-header">検索</h3>
    <div class="widget-content">
        <form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
            <input type="text" id="search" class="ti" name="search" value="<$mt:SearchString$>" />
<mt:If name="search_results">
            <input type="hidden" name="IncludeBlogs" value="<$mt:SearchIncludeBlogs$>" />
…後略…

変更前

<div class="widget-search widget">
    <h3 class="widget-header">検索</h3>
    <div class="widget-content">
        <form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
            <$mt:SearchConditionScriptThunk$>
<mt:If name="search_results">
            <input type="hidden" name="IncludeBlogs" value="<$mt:SearchIncludeBlogs$>" />
…後略…

最後に、ウィジェットの一番下にMTSearchConditionScriptThunkタグを追加します。

…前略…
        </mt:Tags>
        </ul>
    </div>
</div>
    </mt:IfTagSearch>
</mt:If>
<$mt:SearchConditionScriptThunk$>

7.「検索結果」システムテンプレートの修正

「検索結果」システムテンプレートのMTSearchStringタグの代わりに、本プラグインで提供するMTSearchStringWithoutConditionタグを設定します。

…前略…
<mt:IfStraightSearch>
    「<$mt:SearchString$>」と一致するもの
</mt:IfStraightSearch>
…後略…
…前略…
<mt:IfStraightSearch>
    「<$mt:SearchStringWithoutCondition$>」と一致するもの
</mt:IfStraightSearch>
…後略…

タグ検索以外のMTSearchStringタグはすべて変更してください(よく分か羅内場合はすべて変更しても問題ありません)。

7項の修正を行わないと、検索結果のページに、検索文字列に追加した検索条件がくっついた形で表示されてしまいます。

設定が完了したらすべてのページを再構築して、動作を確認してください。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)