検索プラグイン

このプラグインについて

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

検索プラグイン

ダウンロード

以下のリンクからプラグインをダウンロードできます。

導入方法

ファイルのアップロード

config.search.phppage.search.phplibs/freo/plugins/ ディレクトリ内にアスキーモードでアップロードします。

search.iniconfigs/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/aaa
  • gallery/bbb
  • gallery/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.php
  • page.search.php
  • mobile/search/default.html
  • search/default.html
2011/05/11 Ver 1.1.1
  • テーブル名のプレフィックスが正しく反映されない不具合を修正。

バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。

  • config.search.php
  • page.search.php
2011/05/03 Ver 1.1.0
  • 一部のページのみを対象に検索できるように改良。

バージョンアップは、以下のファイルを最新版付属のものに差し替えてください。

  • config.search.php
  • page.search.php
  • mobile/search/default.html
  • search/default.html
2011/02/24 Ver 1.0.0

正式版を公開しました。