dataBoxで検索するページを作成する方法
- Friday, October 17 2014 @ 04:27 PM JST
- 投稿者: Admin
- 表示回数 7,061
Geeklog のdataBoxを活用するとこのように検索ページをすぐに作成できます。
検索フォームのページは、以下のように静的ページなどで作成してください。
DataBox検索テスト
<form action="[conf:site_url]/databox/search.php" method="get" >
<!-- templatedir テンプレートディレクトリを指定する 省略可 -->
<input name="templatedir" value="" type="hidden">
<!-- 条件指定 AND -->
<!-- fieldset タイプを指定する -->
検索テスト<input name="fieldset" value="10" type="hidden">
<!-- gor_3 カテゴリグループid=3のカテゴリを複数指定する OR条件 -->
<div class="databox_admin_data_title">賃貸物件タイプ</div>
[databox:categorycheck group_id:3 fname:gor_3]
<input name="gor_3[]" value="" type="hidden"> <!-- チェックが入らない時でも引数渡すためのダミー -->
<!-- gand_8 カテゴリグループid=8のカテゴリを複数指定する AND条件 -->
<div class="databox_admin_data_title">売買物件タイプ</div>
[databox:categorycheck group_id:8 fname:gand_8]
<input name="gand_8[]" value="" type="hidden"> <!-- チェックが入らない時でも引数渡すためのダミー -->
<!-- アトリビュートタイプが一行テキスト 、複数行テキスト、HTML、TinyMCE、CKEditor、数値、通貨の項目を検索キーにすることができます。
-->
<!-- aeq_4 アトリビュートid=4 のデータが 入力値と等しい -->
<p>
賃料価格=<input size="60" maxlength="160" name="aeq_4" style="max-width:95%" value="" type="text">
</p>
<!-- ato_5 アトリビュートid=5 のデータが 入力値以下 -->
<p>
礼金以下<input size="60" maxlength="160" name="ato_5" style="max-width:95%" value="" type="text">
</p>
<!-- afr_6 アトリビュートid=6 のデータが 入力値以上 -->
<p>
敷金以上<input size="60" maxlength="160" name="afr_6" style="max-width:95%" value="" type="text">
</p>
<!-- ato_6 アトリビュートid=6 のデータが 入力値以下 -->
<p>
敷金以下<input size="60" maxlength="160" name="ato_6" style="max-width:95%" value="" type="text">
</p>
<p><input value="検索" class="submit" type="submit"></p>
</form>
自動タグの、conf:site_urlは、Assistプラグインの自動タグです。dataBoxはAssistプラグインをインストールして利用してください。
これで作成したフォームを参考に、フォームのhtmlを、検索のテンプレートsearch/テーマ/navigation_detail.thtml に埋め込みます。 検索結果が0だった場合のテンプレートnohit.thtmlにも埋め込みます。
geeklog.jpの、 layout/(theme)/databox/templates/category/(theme)/navigation_detail.thtmlの事例:
<!-- layout/(theme)/databox/templates/category/default/navigation_detail.thtml 20120810{ -->
<div class="uk-panel uk-panel-box" style="padding-top:-30px; margin: 10px 0 30px 0">
<form action="[conf:site_url]/databox/search.php" method="get" >
<!-- templatedir テンプレートディレクトリを指定する 省略可 -->
<input name="templatedir" value="" type="hidden">
<!-- 条件指定 AND -->
<!-- fieldset タイプを指定する -->
<input name="fieldset" value="1" type="hidden">
<!-- gor_2 カテゴリグループid=2のカテゴリを複数指定する OR条件 -->
<h3>サイトの種別</h3>
{gor_2}
<input name="gor_2[]" value="" type="hidden"> <!-- チェックが入らない時でも引数渡すためのダミー -->
<div class="uk-text-right">
<select type="text" name="perpage">
<option value="10"></option>
<option value= "5"<?php if(isset($_GET['perpage'])){ if(!strcmp( "5",$_GET['perpage'])){ echo ' selected="selected"'; }} ?>>5件</option>
<option value="10"<?php if(isset($_GET['perpage'])){ if(!strcmp("10",$_GET['perpage'])){ echo ' selected="selected"'; }} ?>>10件</option>
<option value="20"<?php if(isset($_GET['perpage'])){ if(!strcmp("20",$_GET['perpage'])){ echo ' selected="selected"'; }} ?>>20件</option>
<option value="30"<?php if(isset($_GET['perpage'])){ if(!strcmp("30",$_GET['perpage'])){ echo ' selected="selected"'; }} ?>>30件</option>
<option value="50"<?php if(isset($_GET['perpage'])){ if(!strcmp("50",$_GET['perpage'])){ echo ' selected="selected"'; }} ?>>50件</option>
</select>
<input value="検索" class="uk-button uk-button-success uk-button-large" type="submit" style="width:130px"></div>
<div class="uk-text-left">
<button class="uk-button" data-uk-toggle="{target:'#my-id'}"><i class="uk-icon-toggle-down"></i> 詳細検索</button>
</div>
<div id="my-id" class="uk-hidden">
<!-- gor_1 カテゴリグループid=1のカテゴリを複数指定する OR条件 -->
<h3>制作会社別(OR検索)</h3>
{gor_1}
<input name="gor_1[]" value="" type="hidden"> <!-- チェックが入らない時でも引数渡すためのダミー -->
<!-- gor_3 カテゴリグループid=3のカテゴリを複数指定する AND条件 -->
<h3>アドオン別(AND検索)</h3>
{gand_3}
<input name="gand_3[]" value="" type="hidden"> <!-- チェックが入らない時でも引数渡すためのダミー -->
</div>
</form>
</div>
<div class='pagenav'>
{page_navigation}
<div class='count' style="float:left">{lang_view} [{lin}] / {cnt} </div>
</div>
<div id="container-isotope" class="clearfix" style="margin-top: 3em">
{row_var}
</div>
<div style="clear:both; height:50px"></div>
<!-- } layout/(theme)/databox/templates/category/default/navigation_detail.thtml -->