Friday, March 29 2024 @ 01:51 AM JST

dataBox 検索について

  • Wednesday, July 29 2015 @ 02:50 PM JST
  • 投稿者:
  • 表示回数 2,699
Geeklog

データの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 -->