dataBoxで検索するページを作成する方法

Geeklog
投稿者: 表示回数4,845

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