織夢的搜索功能很好用,但有時候我們會需要一些特殊的搜索情況,例如我們網站中需要根據頻道不同,調用不同的搜索結果頁模板。本文就來教大家怎樣調用不同的搜索頁模板。
dedecms本身自帶的模板有圖片模型、文章模型、軟件模型等,有時候為了用戶體驗需要給搜索框加一個判定,例如搜索軟件模型的時候顯示軟件模型的模板,搜索文章模型的時候顯示文章模型的模板。
具體的實現代碼如下:
1.在head區域加入如下代碼:
<scriptlanguage="javascript"type="text/javascript">
functioncheck(){
if(document.formsearch.channeltype.value=="1")
document.formsearch.action="{dede:fieldname='phpurl'/}/search.php"
else
document.formsearch.action="{dede:fieldname='phpurl'/}/search_news.php"}
</script>
這段代碼主要用來判斷你選擇了什么頻道,根據你選擇的頻道的不同,來使用不同的搜索頁模板。
2.更改搜索代碼
<formname="formsearch"action=""data-ke-onsubmit="check();">
<divclass="form">
<inputtype="hidden"name="kwtype"value="0"/>
<inputname="q"type="text"class="search-keyword"id="search-keyword"value="{dede:globalname='keyword'function='RemoveXSS(@me)'/}"/>
<selectname="channeltype"id="channeltype">
<optionvalue='1'selected='1'>新聞</option>
<optionvalue='3'>軟件</option>
</select>
<buttontype="submit"class="search-submit">搜索</button>
</div>
</form>
其中重點就是
<selectname="channeltype"id="channeltype">
<optionvalue='1'selected='1'>新聞</option>
<optionvalue='3'>軟件</option>
</select>
關鍵設置:這里設置的按模型搜索1是文章模型3是軟件模型
3.復制/plus/serach.php更名為/plus/search_images.php
4.打開search_images.php將如下代碼:
require_once(DEDEINC."/arc.searchview.class.php");
更改為
require_once(DEDEINC."/arc.searchimg.class.php");
5.復制/include/arc.searchview.class.php更名為/include/arc.searchimg.class.php
6.打開arc.searchimg.class.php查找如下代碼:
$tempfile=$GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm";
更改為
$tempfile=$GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search_images.htm
做完上面的操作,基本就可以調用出不同的搜索頁模板了。祝你成功。