帝國 CMS 內建強大的搜尋功能,掌握表單參數語法即可滿足 90% 以上的站內搜尋需求。若涉及自訂欄位搜尋,需微調 e/search/index.php 處理邏輯。本文系統整理所有表單變數與實戰範例。
| 變數名 | 說明 | 範例 |
|---|---|---|
keyboard | 搜尋關鍵字 | <input name="keyboard"> |
show | 搜尋欄位(逗號分隔,需後台模型開啟搜尋) | <input type="hidden" name="show" value="title,newstext"> |
classid | 欄目 ID(0=不限,逗號分隔,父欄目含子欄目) | <input type="hidden" name="classid" value="1"> |
ztid | 專題 ID | <input type="hidden" name="ztid" value="1"> |
tbname | 指定資料表(配合 tempid 使用) | <input type="hidden" name="tbname" value="news"> |
tempid | 搜尋模板 ID | <input type="hidden" name="tempid" value="1"> |
starttime/endtime | 發布時間範圍 (YYYY-MM-DD) | <input name="starttime" value="2008-02-27"> |
startprice/endprice | 價格範圍 | <input name="startprice" value="0"> |
member | 0=不限 1=會員投稿 2=管理員發布 | <input type="hidden" name="member" value="1"> |
orderby | 排序欄位:0=日期 1=ID 2=評論 3=人氣 4=下載 | <input type="hidden" name="orderby" value="1"> |
myorder | 0=倒序 1=正序 | <input type="hidden" name="myorder" value="1"> |
andor | 多條件關係:or(預設)/and | <input type="hidden" name="andor" value="and"> |
hh | 邏輯運算子:LK(模糊) EQ(等於) GT/LT/GE/LE/NE/BT(IN)/IN | <input type="hidden" name="hh" value="LK"> |
<input type="hidden" name="hh" value="LK,EQ"> <input type="hidden" name="show" value="title,writer"> <input type="hidden" name="keyboard" value="標題,作者">
<input type="hidden" name="show[]" value="title"> <input type="hidden" name="hh[]" value="LK"> <input type="hidden" name="keyboard[]" value="標題"> <input type="hidden" name="show[]" value="writer"> <input type="hidden" name="hh[]" value="EQ"> <input type="hidden" name="keyboard[]" value="作者">
表單包含:地區 area、房型 category、時間區間、關鍵字。自訂欄位 myarea、mycategory 需在 e/search/index.php 合併進 keyboard:
<?php
// 原始:$keyboard = $_POST['keyboard'];
$keyboard = $_POST['keyboard'] . ',' . $_POST['area'] . ',' . $_POST['category'];
$keyboardone = 0;
if (is_array($keyboard)) { /* ... */ }
elseif (strstr($keyboard, ',')) { $keyboard = explode(',', $keyboard); }
else { /* 長度檢查 ... */ $keyboardone = 1; }
?>
搭配模板 tempid=1,即可實現「香洲區、二房、近半年發布、含『精裝』關鍵字」的精準篩選。