在织梦CMS中设置两个高级搜索,并使它们的搜索结果分别指向不同的模板,可以通过以下步骤实现:
需要在页面的head区域加入JavaScript代码,用于判断用户选择的频道类型,从而决定搜索结果页面的跳转路径,具体代码如下:
<script language="javascript" type="text/javascript">
function check(){
if(document.formsearch.channeltype.value=="1") {
document.formsearch.action="{dede:field name='phpurl'/}/search_news.php";
} else {
document.formsearch.action="{dede:field name='phpurl'/}/search_software.php";
}
}
</script>
这段代码会在用户提交表单时,根据所选频道类型的值来动态设置表单的action属性。
需要修改搜索表单的代码,使其包含一个下拉列表供用户选择频道类型,并在提交表单时调用上述JavaScript函数,具体代码如下:
<form name="formsearch" action="" datakeοnsubmit="check();">
<div class="form">
<input type="hidden" name="kwtype" value="0" />
<input name="q" type="text" class="searchkeyword" id="searchkeyword" value="{dede:global name='keyword' function='RemoveXSS(@me)'/}" />
<select name="channeltype" id="channeltype" >
<option value='1' selected='1'>新闻</option>
<option value='3'>软件</option>
</select>
<button type="submit" class="searchsubmit">搜索</button>
</div>
</form>
<select>
标签用于让用户选择频道类型,channeltype
的值为1时表示新闻,为3时表示软件。
为了实现不同频道类型的搜索结果页使用不同的模板,需要复制并重命名相关的PHP和类文件,具体操作如下:
1、复制/plus/serach.php文件,并将其更名为/plus/search_news.php(用于新闻搜索)。
2、复制/include/arc.searchview.class.php文件,并将其更名为/include/arc.search_news.class.php。
3、打开/include/arc.search_news.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_news.htm";
这样,当用户选择新闻频道进行搜索时,就会使用search_news.htm模板来显示搜索结果。
同理,可以为软件搜索创建相应的search_software.php和search_software.class.php文件,并修改对应的模板路径为search_software.htm。
通过以上步骤,就可以实现织梦中两个高级搜索功能,并使它们的搜索结果分别指向不同的模板,这种设置有助于提升用户体验,使网站内容展示更加灵活多样。
FAQs
1、问题:为什么需要复制并重命名相关文件?
解答:复制并重命名相关文件是为了实现不同频道类型的搜索结果页使用不同的模板,通过创建新的PHP和类文件,并修改其中的模板路径,可以确保在用户选择不同频道类型进行搜索时,能够加载并显示对应的模板。
2、问题:如何修改搜索结果页每页显示的结果条数?
解答:要修改搜索结果页每页显示的结果条数,可以打开/plus/advancedsearch.php文件,找到以下代码:
$dlist>pageSize = 20;
将20改为你需要的条数即可,如果你想每页显示30条结果,可以将其修改为:
$dlist>pageSize = 30;