検索結果ページのカスタマイズ
特定のブログを検索対象にする
各ブログのデフォルトテンプレートでは、次のように、そのブログのみを検索するように設定されています。
<input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />
この IncludeBlogs パラメータに、そのフォームから検索を行ったとき、検索対象としたいブログの BlogID を設定します。
<input type="hidden" name="IncludeBlogs" value="1,2,4" />
この例では、BlogID が 1,2,4 のブログを検索対象とするフォームとなります。
<form method="get" action="<$mt:CGIPath$><$MTSearchScript$>">
<input type="text" id="search" name="search" value="<$mt:SearchString$>" />
<div>
<input type="hidden" name="IncludeBlogs" value="1,2,4" />
<input type="submit" value="GO" />
</div>
</form>
Movable Type で管理している全てのブログを検索の対象にする
管理しているブログ全てを検索の対象にしたい場合は、検索フォームの form 要素のに含まれる name 属性の値を IncludeBlogs に設定した input 要素を削除し、検索対象の絞り込みをしないようにします。
<form method="get" action="<$mt:CGIPath$><$MTSearchScript$>">
<input type="text" id="search" name="search" value="<$mt:SearchString$>" />
<div>
<input type="submit" value="GO" />
</div>
</form>
全てのブログの検索から特定のブログを検索対象にしない
全てのブログ検索から、特定のブログを外したい場合、環境設定ファイル (mt-config.cgi) に、環境変数 ExcludeBlogs
で、対象から外したい BlogID を設定します。
ExcludeBlogs 1,2,4,7,10
この例では、BlogID が 1、2、4、7、10 のブログは検索の対象にはなりません。これらのブログに対する検索は、検索フォームの IncludeBlogs パラメーターに指定することで、検索できるようになります。
検索結果のカスタマイズ
検索結果ページのカズタマイズは、検索結果テンプレートのカスタマイズで行います。
特定のブログを対象とする検索結果のカスタマイズ
ブログの検索結果テンプレートは、各ブログのシステムテンプレートとして登録されています。検索結果テンプレートは、そのテンプレートを管理しているブログの検索フォームから、検索した結果に使われます。たとえば、『A』というブログから、システム全体のブログを対象とした検索を行っても、特に指定の無い限り、検索を行なったブログの検索結果テンプレートを使用して結果ページを出力します。
システム全体を対象とする検索結果のカスタマイズ
アプリケーションディレクトリの下に、search_templates ディレクトリがあります。このディレクトリ内の default.tmpl ファイルをカスタマイズします。新規のコメントを検索の対象にする場合は、comments.tmpl ファイルです。FTP プログラム等でローカルにバックアップをとり、通常のテンプレートの変更と同様にカスタマイズしていきます。
代替テンプレート
複数のブログで、検索結果のテンプレートを共通にする方法に、代替テンプレートがあります。これは、前述の方法と異なり、検索フォームの中で、検索結果テンプレートを指定するものです。代替テンプレートの設定は、次のとおりです。
- 代替テンプレートの作成
-
標準の検索結果テンプレートを元に、テンプレートを作成します。
- 代替テンプレートのアップロード
-
作成したテンプレートを、FTPクライアント等でアップロードします。アップロード先は、アプリケーション・ディレクトリの下の、search_templates ディレクトリです。
- 代替テンプレートの登録
-
代替テンプレートの登録は、環境設定ファイル (mt-config.cgi) に、環境変数 SearchAltTemplate を使って設定を追加します。たとえば、作成したテンプレートのファイル名が、altsearch.tmplだった場合、mt-config.cgiに次のとおり記述します。
SearchAltTemplate
altsearch altsearch.tmplファイル名 altsearch.tmpl の前の altsearch は代替テンプレートの名前で、検索フォームの設定で利用します。
Movable Type 4.15 以前のバージョンでは、AltTemplate を使用してください。
- 検索フォームの設定
-
利用する代替テンプレートを、検索フォーム内に次のとおり設定します。
<div class="module-search module"> <h2 class="module-header">検索</h2> <div class="module-content"> <form method="get" action="<$MTCGIPath$><$MTSearchScript$>"> <input type="hidden" name="Template" value="altsearch" /> <input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" /> <label for="search" accesskey="4">ブログを検索: </label><br /> <input id="search" name="search" size="20" /> <input type="submit" value="検索" /> </form> </div>
検索フォームのカスタマイズ
検索フォームにさまざまなパラメーターを設定することで、検索機能をカスタマイズできます。次は、すべてのパラメーターを設定したフォームの例です。
<form method="post" action="<$MTCGIPath$><$MTSearchScript$>">
<dl>
<!-- 検索条件 -->
<dt><label for="search">検索条件</label></dt>
<dd><input size="30" name="search" value="<$MTSearchString$>" /></dd>
<!-- オプション -->
<dt><label for="CaseSearch">大文字と小文字の区別</label></dt>
<dd><input type="checkbox" name="CaseSearch" /></dd>
<dt><label for="RegexSearch">正規表現</label></dt>
<dd><input type="checkbox" name="RegexSearch" /></dd>
<!-- 検索範囲に関するパラメーター -->
<dt><label for="ExcludeBlogs">検索の対象外にするブログ</label></dt>
<dd>
<MTBlogs>
<input type="checkbox" name="ExcludeBlogs" value="<$MTBlogID$>" /> <$MTBlogName$>
</MTBlogs>
</dd>
<dt><label for="SearchCutoff">検索する対象期間</label></dt>
<dd>
<select name="SearchCutoff">
<option value="9999999">最初から</option>
<option value="7">1週間前から</option>
<option value="14">2週間前から</option>
<option value="30">1カ月前から</option>
<option value="60">2カ月前から</option>
<option value="90">3カ月前から</option>
<option value="365">1年前から</option>
</select>
</dd>
<!-- 検索対象に関するパラメーター -->
<dt><label for="SeachElement">検索の対象</label></dt>
<dd>
<input type="radio" name="SearchElement" value="entries" />エントリー
<input type="radio" name="SearchElement" value="comments" />コメント
<input type="radio" name="SearchElement" value="both" />両方
</dd>
<!-- 検索結果に関するパラメーター -->
<dt><label for="SearchSortBy">並べ替え基準</label></dt>
<dd>
<select name="SearchSortBy">
<option value="created_on">作成日時</option>
<option value="title">タイトル</option>
</select>
</dd>
<dt><label for="ResultDisplay">並べ替え順</label></dt>
<dd>
<select name="ResultDisplay">
<option value="ascend">昇順</option>
<option value="descend">降順</option>
</select>
</dd>
<dt><label for="MaxResults">ブログごとの検索結果の表示数</label></dt>
<dd>
<select name="MaxResults">
<option value="5">5</option>
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="9999999">すべて</option>
</select>
</dd>
</dl>
<input type="submit" value="Search" /><br />
</form>
なお、これらのパラメーターは、環境設定ファイルmt-config.cgiに設定しておくことで、システム全体に共通の設定ができます。