帝國CMS的搜尋表單文法規則

來源:互聯網
上載者:User

帝國CMS提供了比較強大的搜尋結果調用,你可以按照帝國cms搜尋表單製作文法,製作出滿足你需求的大部分搜尋功能。如果你在你的資料庫中有自訂欄位,那麼可能需要改一下e/search/index.php對form表單提交的資料處理,可以參考文章最後提供的例子。先來看看搜尋表單變數說明:
變數名說明例子搜尋表單提交地址POST方式:/e/search/index.php<form name="searchform" method="post" action="/e/search/index.php">GET方式:/e/search/?searchget=1/e/search/?searchget=1&keyboard=帝國&show=titlekeyboard搜尋索引鍵變數<input name="keyboard" type="text">show搜尋欄位變數(多個欄位用","格開。搜尋欄位必須是後台模型開啟搜尋的欄位)<input type="hidden" name="show" value="title,newstext">classid搜尋欄目ID(不設定為不限,多個欄目可用","格開,設定父欄目會搜尋所有子欄目)<input type="hidden" name="classid" value="1">ztid搜尋專題ID(不設定為不限,多個專題可用","格開)<input type="hidden" name="ztid" value="1">tbname按資料表搜尋(需與搜尋模板ID結合)<input type="hidden" name="tbname" value="news">tempid所用搜尋模板ID(一般跟按表搜尋結合使用)<input type="hidden" name="tempid" value="1">starttime與endtime分別為搜尋發布起始時間與結束時間的資訊(不填為不限.格式:2008-02-27)<input name="starttime" type="text" value="0000-00-00" size="12">
<input name="endtime" type="text" value="0000-00-00" size="12">startprice與endprice分別為商品價格的起始價格與結束價格(不填為不限)<input name="startprice" type="text" value="0" size="6">
<input name="endprice" type="text" value="0" size="6">搜尋特殊欄位id : 按資訊ID搜尋
keyboard : 按關鍵字搜尋(可實現按tags列出資訊)
userid : 按發行者使用者ID搜尋
username : 按發行者使用者名稱搜尋<input type="hidden" name="show" value="keyboard">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邏輯運算連接符變數:
LT : 小於
GT : 大於
EQ : 等於
LE : 小於等於
GE : 大於等於
NE : 不等於
IN : 包含(搜尋索引鍵用空格隔開每個值)
BT : 範圍,兩個值之間(搜尋索引鍵用空格隔開兩個值)
LK : 模糊查詢(預設)<input type="hidden" name="hh" value="LK">
下面是一個例子:


<tablewidth="320"border="0"cellspacing="1"cellpadding="3">
<formname="searchform"method="post"action="/e/search/index.php">
<tr>
   <td>關鍵字:<inputname="keyboard"type="text"size="10"></td>
  <td>範圍:
      <selectname="show">
      <optionvalue="title">標題</option>
      <optionvalue="smalltext">簡介</option>
      <optionvalue="newstext">內容</option>
      <optionvalue="writer">作者</option>
      <optionvalue="title,smalltext,newstext,writer">搜尋全部</option>
       </select></td>
</tr>
<tr>
   <td>欄 目:
      <selectname="classid">
      <optionvalue="0">搜尋全部</option>
      <optionvalue="1">新聞中心</option>
      <optionvalue="4">技術文檔</option>
      <optionvalue="22">下載中心</option>
       </select> </td>
   <td><inputtype="submit"name="submit"value="搜尋"></td>
</tr>
</form>
</table>




搜尋表單多條件並列搜尋文法說明

1. 多欄位並列搜尋:有"字串"與"數組"兩種傳遞方式
字串傳遞為例子:


<inputtype="hidden"name="hh"value="LK">
<inputtype="hidden"name="show"value="title,writer">
<inputtype="hidden"name="keyboard"value="標題,作者">


說明:上面為模糊查詢title欄位包含"標題"字元或者writer欄位包含"作者"的資訊
數組傳遞為例子:


<inputtype="hidden"name="hh"value="LK">
<inputtype="hidden"name="show[]"value="title">
<inputtype="hidden"name="keyboard[]"value="標題">
<inputtype="hidden"name="show[]"value="writer">
<inputtype="hidden"name="keyboard[]"value="作者">


上面為模糊查詢title欄位包含"標題"字元或者writer欄位包含"作者"的資訊
2. 多邏輯運算連接符並列搜尋
字串傳遞為例子:


<inputtype="hidden"name="hh"value="LK,EQ">
<inputtype="hidden"name="show"value="title,writer">
<inputtype="hidden"name="keyboard"value="標題,作者">


說明:上面為模糊查詢title欄位包含"標題"字元或者writer欄位等於"作者"的資訊
字串傳遞為例子:


<inputtype="hidden"name="show[]"value="title">
<inputtype="hidden"name="hh[]"value="LK">
<inputtype="hidden"name="keyboard[]"value="標題">
<inputtype="hidden"name="show[]"value="writer">
<inputtype="hidden"name="hh[]"value="EQ">
<inputtype="hidden"name="keyboard[]"value="作者">


說明:上面為模糊查詢title欄位包含"標題"字元或者writer欄位等於"作者"的資訊。


一個實際例子

表單設計如下:


<formaction="[!--news.url--]e/search/index.php"method="post"name="searchform"id="searchform">
<selectname="classid"id=""style="display:none">
    <optionvalue="59,60,78,79,80,81"selected>全部</option>
</select>
<inputtype="hidden"name="show"value="title,myarea,mycategory,smalltext"/>
<inputtype="hidden"name="tempid"value="1"/>
<tablewidth="100%"cellspacing="0"cellpadding="0"border="0">
    <tbody>
        <trclass="even">
            <tdstyle=" text-align:left;">地區:
        <selectname="area"id="">
            <optionvalue="">不限</option>
            <optionvalue="香洲">香洲</option>
            <optionvalue="吉大">吉大</option>
            <optionvalue="拱北">拱北</option>
            <optionvalue="新香洲">新香洲</option>
            <optionvalue="前山">前山</option>
            <optionvalue="南屏">南屏</option>
            <optionvalue="金灣">金灣</option>
            <optionvalue="鬥門">鬥門</option>
        </select>
          房型:
        <selectname="category"id="">
            <optionvalue="">不限</option>
            <optionvalue="58_0">一房</option>
            <optionvalue="58_1">二房</option>
            <optionvalue="58_2">三房以上</option>
            <optionvalue="58_3">公寓</option>
            <optionvalue="58_4">寫字樓</option>
            <optionvalue="58_5">商鋪</option>
            <optionvalue="58_6">廠房</option>
        </select>
            </td>
            <td> </td>
        </tr>
        <trclass="even">
            <tdstyle=" text-align:left;">時間範圍: <inputname="starttime"type="text"value="2008-08-08"size="12"onclick="calendar.show(this);"/> 到 <inputtype="text"id="todayButton"name="todayButton"value=""size="12"onclick="calendar.show(this);"/> (不選則不限時段)</td>
           <td> </td>
       </tr>
       <trclass="even">
            <tdstyle=" text-align:left;"><inputname="keyboard"type="text"size="32"value=""id="keyboard"class="inputText"/>   <inputtype="submit"name="Submit22"value=" 搜 索 "/></td>
            <td></td>
        </tr>
    </tbody>
</table>
</form>


為了可以加入對自訂欄位myarea與mycategory的搜尋,我們需要對e/search/index.php進行適當改寫:


$keyboard=$_POST['keyboard'].','.$_POST['area'].','.$_POST['category'];
// 這是原來的:$keyboard=$_POST['keyboard'];
$keyboardone=0;
if(is_array($keyboard))
{}
elseif(strstr($keyboard,','))
{
    $keyboard=explode(',',$keyboard);
}
else
{
    $keyboard=trim($keyboard);
    $len=strlen($keyboard);
    if($len<$public_r[min_keyboard]$len>$public_r[max_keyboard])
   {
       printerror("MinKeyboard",$getfrom,1);
   }
    $keyboardone=1;
}



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。