検索プラグイン

このプラグインについて

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

検索プラグイン

広告

ダウンロード

以下のリンクからプラグインをダウンロードできます。(GitHubに遷移します。)

GitHubの緑ボタン「Code」内にある「Download ZIP」からすべてのプラグインをダウンロードできるので、解凍後に作成されるフォルダの中から search フォルダを入手してください。

導入方法

準備

あらかじめ管理者ページにログインしておきます。

ファイルのアップロード

search/ 内の configs/libs/templates/ を、freo設置ディレクトリ内にアスキーモードで上書きアップロードします。

パーミッションの設定

ブラウザソフトで freo/index.php/setup にアクセスすると、必要なパーミッションが自動設定されます。

ただし、設置時に「ご利用のサーバーは、PHPから直接パーミッションを設定することができない環境のようです。」と表示された環境の場合は自動設定されないので、FTPソフトで以下のファイルのパーミッションを設定してください。

対象 パーミッション
configs/plugins/search.ini 606 に設定

完了

ブラウザソフトで freo/index.php/search にアクセスし、エラーが表示されなければ完了です。

管理者ページにログイン後、管理メニューから「システム」→「設定管理」→「プラグインの設定」→「検索」を選択すると、各種設定を行えます。

機能解説

目次

検索条件を入力していないときに検索結果を表示しない

このプラグインにアクセスした時、検索条件が指定されていなければすべての記事が表示されます。これを表示させないようにする場合、テンプレートを修正して「検索条件がなければ何も表示しない」とすることで対応できます。

まずは templates/plugins/search/default.html の50行目あたりにある

<h2>検索結果</h2>
<!--{if $smarty.get.word or $smarty.get.user or $smarty.get.tag or $smarty.get.date or $smarty.get.target or $smarty.get.page_name or $smarty.get.option}-->

この部分を以下のように修正します。(順番を入れ替えています。)

<!--{if $smarty.get.word or $smarty.get.user or $smarty.get.tag or $smarty.get.date or $smarty.get.target or $smarty.get.page_name or $smarty.get.option}-->
<h2>検索結果</h2>

次に85行目あたりにある

<!--{/if}-->
<p><em>{$article_count}</em>件ヒットしました。全<em>{$article_page}</em>ページ中<em>{$freo.query.page}</em>ページ目を表示しています。</p>

この部分を以下のように修正します。(<!--{/if}--> を削除しています。)

<p><em>{$article_count}</em>件ヒットしました。全<em>{$article_page}</em>ページ中<em>{$freo.query.page}</em>ページ目を表示しています。</p>

次にファイルの最後にある

  <p>ヒットしませんでした。</p>
  <!--{/if}-->
{include file='footer.html'}

この部分を以下のように修正します。(<!--{/if}--> を追加しています。)

  <p>ヒットしませんでした。</p>
  <!--{/if}-->
  <!--{/if}-->
{include file='footer.html'}

サイドバーに検索フォームを設置

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}-->

この部分を削除すると、オプション項目で絞り込む欄が非表示なります。

この部分を修正することにより、例えば「チェックボックスでの絞り込み以外は削除する」「テキスト入力欄での絞り込みのみ削除する」のような検索も可能です。

携帯からのアクセス

携帯からアクセスすると、携帯用の表示になります。

削除方法

このプラグインは、以下の手順で削除できます。

ファイルの編集

CSSファイル、テンプレートに追加したコードを削除します。

ファイルの削除

以下のファイルを削除します。

  • configs/plugins/search.ini
  • libs/freo/plugins/config.search.php
  • libs/freo/plugins/page.search.php
  • templates/mobiles/plugins/search/ (ディレクトリごと削除)
  • templates/plugins/search/ (ディレクトリごと削除)

更新履歴

  • 最新版との差分ファイルを一覧表示できます。
  • 使用している検索プラグインのバージョンを入力してください。
  • 更新内容の詳細は、以下の更新履歴を確認してください。
差分調査
使用しているバージョン

2013/01/03 Ver 1.4.0
  • freo Ver 1.15.0 に合わせて、閲覧制限対象の記事を記事一覧に表示するか否かの選択が反映されるように調整。

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

2012/07/23 Ver 1.3.0
  • freo Ver 1.9.0 に合わせて、オプションを表示するか否かの選択が反映されるように調整。

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

2011/10/26 Ver 1.2.0
  • オプション項目から検索できるように改良。

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

2011/05/11 Ver 1.1.1
  • テーブル名のプレフィックスが正しく反映されない不具合を修正。

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

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

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

2011/02/24 Ver 1.0.0

正式版を公開しました。