検索プラグイン
このプラグインについて
エントリーとページの両方(「両方」「エントリーのみ」「ページのみ」のいずれか)を対象に、キーワード検索を行います。また、一部のページのみを対象に検索したり、オプション項目を対象に検索することもできます。

導入方法
ファイルのアップロード
config.search.php と page.search.php を libs/freo/plugins/ ディレクトリ内にアスキーモードでアップロードします。
search.ini を configs/plugins/ ディレクトリ内にアスキーモードでアップロードします。
search/ を templates/plugins/ ディレクトリ内にアスキーモードでアップロードします。
mobile/ 内にある search/ を templates/mobiles/plugins/ ディレクトリ内にアスキーモードでアップロードします。
パーミッションの設定
configs/plugins/search.ini のパーミッションを 606 に設定します。
完了
ブラウザソフトで freo/index.php/search にアクセスし、エラーが表示されなければ完了です。
管理者ページにログイン後、管理メニューから「システム」→「設定管理」→「プラグインの設定」→「検索」を選択すると、各種設定を行えます。
機能解説
サイドバーに検索フォームを設置
templates/utility.html に、一例ですが以下のコードを追加します。
<div class="utility">
<h3>キーワード検索</h3>
<div class="content">
<form action="{$freo.core.http_file}/search" method="get">
<fieldset>
<legend>キーワード検索フォーム</legend>
<dl>
<dt>キーワード</dt>
<dd><input type="text" name="word" size="50" value="{$smarty.get.word}" /></dd>
</dl>
<p><input type="submit" value="検索する" /></p>
</fieldset>
</form>
</div>
</div>
これで、サイドバーに検索フォームを表示することができます。
一部のページのみを対象に検索する
上の検索フォームに
<input type="hidden" name="page_name" value="検索対象の名前" />
<input type="hidden" name="page_id" value="検索対象のID" />
を追加すると、一部のページのみを対象に検索することができます。
page_name は、検索結果ページで 検索対象は「ギャラリー」です。 のように表示するための文字です。これは任意の文字列を指定することができます。(必須)
page_id は、検索対象となるページIDです。ページIDに % という文字を含めると「何らかの文字が入る」という意味になります。例えば gallery/% と指定すると、「gallery/ という文字があって、その後に何らかの文字が入る」という意味になります。つまり「gallery/ から始まるIDのページ」が検索対象となり、
gallery/aaagallery/bbbgallery/ccc/ddd
といったIDを持つページが検索対象になります。
実際のフォームに組み込んだ例は以下のようになります。
<div class="utility">
<h3>キーワード検索</h3>
<div class="content">
<form action="{$freo.core.http_file}/search" method="get">
<fieldset>
<legend>キーワード検索フォーム</legend>
<input type="hidden" name="page_name" value="ギャラリー" />
<input type="hidden" name="page_id" value="gallery/%" />
<dl>
<dt>キーワード</dt>
<dd><input type="text" name="word" size="50" value="{$smarty.get.word}" /></dd>
</dl>
<p><input type="submit" value="検索する" /></p>
</fieldset>
</form>
</div>
</div>
オプション項目からの検索について
オプション項目を登録している場合、オプション項目から絞り込むための欄が表示されます。例えばオプション項目に「使用ツール」「価格」などを登録しておき、それらをもとに「使用ツールがPhotoshopかPainterの作品」「価格が1000円以下の作品」という検索を行う…ということができるようになります。
絞り込む方法は、オプション項目を登録する際に指定できる「種類」と「検証」によって変わります。具体的には以下のとおりです。
- 「種類」が「一行入力」でなおかつ「検証」が「数値のみ」なら
- … 数値入力欄が表示されます。入力した範囲の数値を含むデータを抽出します。
- 「種類」が「一行入力」か「複数行入力」なら
- … テキスト入力欄が表示されます。入力した文字列を含むデータを抽出します。
- 「種類」が「セレクトボックス」か「ラジオボタン」なら
- … チェックボックスが表示されます。選択した項目と一致するデータを抽出します。
- 「種類」が「チェックボックス」なら
- … チェックボックスが表示されます。選択した項目を含むデータを抽出します。
- 「種類」が「アップロード」なら
- … 検索対象外です。
オプション項目からの絞り込みを使用する場合、css/default.css に一例ですが
div#search_option {
padding: 10px 20px;
border: 1px solid #CCCCCC;
background-color: #EEEEEE;
}
div#search_option h3 {
font-size: 100%;
}
div#search_option dl dd ul {
margin: 0;
padding: 2px 0;
}
div#search_option dl dd ul li {
display: inline;
list-style: none;
margin-right: 10px;
}
div#search_option span.note {
color: #666666;
}
このCSSを追加しておくと、フォームの見た目が解りやすくなります。CSSの内容は、好みに応じて適当に修正してください。
なお、オプション項目からの絞り込みが不要な場合、search/default.html の20~45行目あたりにある
<!--{if $freo.refer.options|smarty:nodefaults}-->
<div id="search_option">
<h3>オプション項目で絞り込み</h3>
<dl>
~略~
</dl>
</div>
<!--{/if}-->
この部分を削除すると、オプション項目で絞り込む欄が非表示なります。
この部分を修正することにより、例えば「チェックボックスでの絞り込み以外は削除する」「テキスト入力欄での絞り込みのみ削除する」のような検索も可能です。
携帯からのアクセス
携帯からアクセスすると、携帯用の表示になります。
更新履歴
- 2011/10/26 Ver 1.2.0
-
- オプション項目から検索できるように改良。
バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。
config.search.phppage.search.phpmobile/search/default.htmlsearch/default.html
- 2011/05/11 Ver 1.1.1
-
- テーブル名のプレフィックスが正しく反映されない不具合を修正。
バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。
config.search.phppage.search.php
- 2011/05/03 Ver 1.1.0
-
- 一部のページのみを対象に検索できるように改良。
バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。
config.search.phppage.search.phpmobile/search/default.htmlsearch/default.html
- 2011/02/24 Ver 1.0.0
-
正式版を公開しました。