dataBox 検索について
- Wednesday, July 29 2015 @ 02:50 PM JST
- 投稿者: Admin
- 表示回数 3,116
データのAND検索、OR検索機能が追加されましたが一部説明を追加します。
テーマは、/layout/テーマ/databox/にアップロードして、コンフィギュレーションにてテーマのパスを標準からテーマ に切り替えて利用すると便利です。
さて、検索関係は、以下のディレクトリにテンプレートがあります。
/layout/テーマ/databox/templates/search/default
テンプレートファイルの役割:
- argument.thtml
- 検索form
- col_detail.thtml
- 検索結果のデータのコンテンツ 通常category のcol_detail.thtmlをそのままコピーすればOK
- headercode.thtml
- ogpをセット。すべてのアトリビュートをここに記述できるので、og:imageなどセットできます。
- list_detail.thtml
- 検索結果がある場合のページ全体のレイアウト
- navigation_detail.thtml
- 検索結果の要素をリスト
- nohit.thtml
- 検索結果が無い場合のページ全体のレイアウト
- pagenavigation.thtml
- ページナビゲーション
- row.thtml
- 要素の1行区切り 通常空白
argumant.thtml 補足
OR検索の場合
<!--gor_X カテゴリグループid=Xのカテゴリを複数指定する OR条件 -->
{gor_X}<input name="gor_X[]" value="" type="hidden">
AND検索の場合
<!--gand_X カテゴリグループid=Xのカテゴリを複数指定する AND条件 -->
{gand_X} <input name="gand_X[]" value="" type="hidden">
※X: Group ID(1,2,3.... )
自動タグ: [ databox:search 検索の引数(ただし[]部を除く)]検索自動タグを静的ページに記述するdemo:
https://www.ossj.jp/staticpages/index.php/oss
dataBox を含んだGeeklog一式のダウンロードはこちらから。
https://github.com/ivywe/geeklog-ivywe
なお、/layout/テーマ/databox/templates/search/defaultは、/layout/テーマ/databox/templates/search/にdefaultを元に複数テーマを追加することができます。
argument.thtmlの事例1
<!-- plugins/databox/templates/search/default/argument.thtml { -->
<form class="uk-form uk-form-horizontal" action="{site_url}/{this_script}" method="get">
<div class="uk-form-row">
<!-- Category group id=1 OR -->
<span class="uk-form-label">Group 1</span>
<div class="uk-form-controls uk-form-controls-text">
{gor_1}<input name="gor_1[]" value="" type="hidden">
</div>
</div>
<div class="uk-form-row">
<!-- Category group id=2 AND -->
<span class="uk-form-label">Group 2</span>
<div class="uk-form-controls uk-form-controls-text">
{gand_2}<input name="gand_2[]" value="" type="hidden">
</div>
</div>
<input name="order" value="{order}" type="hidden">
<input name="templatedir" value="{templatedir}" type="hidden">
<input name="fieldset" value="{fieldset}" type="hidden">
<input name="perpage" value="10" type="hidden">
<input name="page" value="1" type="hidden">
<input name="nohitmsg" value="yes" type="hidden">
<input value="{lang_search}" class="submit" type="submit">
</form>
<!--} plugins/databox/templates/search/default/argument.thtml -->
argument.thtml の事例2
Geeklog制作事例
http://www.geeklog.jp/staticpages/index.php/portfolio
<!-- plugins/databox/templates/search/default/argument.thtml 20141015{ -->
<form class="uk-form uk-form-stacked" action="{site_url}/databox/search.php" method="get">
<!-- gor_2 カテゴリグループid=2のカテゴリを複数指定する OR条件 -->
<div class="uk-form-row">
<label class="uk-form-label" for="">サイトの種別(OR検索)</label>
<div class="uk-form-controls">{gor_2}<input name="gor_2[]" value="" type="hidden"></div>
</div>
<!-- gor_1 カテゴリグループid=1のカテゴリを複数指定する OR条件 -->
<div class="uk-form-row">
<label class="uk-form-label" for="">制作会社別(OR検索)</label>
<div class="uk-form-controls">{gor_1}<input name="gor_1[]" value="" type="hidden"></div>
</div>
<!-- gand_3 カテゴリグループid=3のカテゴリを複数指定する AND条件 -->
<div class="uk-form-row">
<label class="uk-form-label" for="">制作会社別(OR検索)</label>
<div class="uk-form-controls">{gand_3}<input name="gand_3[]" value="" type="hidden"></div>
</div>
<?php $perpage = $this->get_var('perpage'); if($perpage==""){ $perpage = 50; } ?>
<div class="uk-form-row">
<div class="uk-form-controls uk-form-controls-text">
<select type="text" name="perpage">
<option value="50"></option>
<option value="20"<?php if(!strcmp("20",$perpage)){ echo ' selected="selected"'; } ?>>20件</option>
<option value="50"<?php if(!strcmp("50",$perpage)){ echo ' selected="selected"'; } ?>>50件</option>
<option value="150"<?php if(!strcmp("150",$perpage)){ echo ' selected="selected"'; } ?>>150件</option>
</select>
<button class="waitMe_ex uk-button uk-button-primary">{lang_search}</button>
</div>
</div>
<!-- templatedir テンプレートディレクトリを指定する 省略可 -->
<input name="templatedir" value="{templatedir}" type="hidden">
<!-- fieldset タイプを指定する -->
<input name="fieldset" value="{fieldset}" type="hidden">
</form>
<!-- } plugins/databox/templates/search/default/argument.thtml -->