科汛KesionCMS搜索页面{@search.menu}的修改方法

最近haibor在看kesionCMS,有许多郁闷的不如人意的用户体验,今天haibor讨论一下搜索页面的Menu问题,希望能抛砖引玉。

问题:搜索页面的{@search.menu}调用数据库所有启用的模型,包括问答中心,但发现许多网友只用到了CMS中的部分功能,而且有些模型不适合做搜索menu(比如haibor新建了一个模型,用来做网站简介等相关部分,即不适合在搜索menu上出现该模型),但询问很多Q群和论坛发帖均没有得到理想的回复。

解决方法:打开plus/search/index.asp 文件,haibor的修改方法如下:

搜索: case "menu"  SearchMenu

修改成: case "menu"  SearchMenu_diy

找到 SearchMenu() 函数,复制该函数(从sub 到 end sub),在后面粘贴该函数为SearchMenu_diy(),并修改该函数如下(ps.灰色行为修改行,注意其中红色部分的模型对应关系):

Sub SearchMenu_diy()

If not IsObject(Application(KS.SiteSN&"_ChannelConfig")) Then KS.LoadChannelConfig

Dim ModelXML,Node

Set ModelXML=Application(KS.SiteSN&"_ChannelConfig")

If ChannelID=0 Then

   echo "<li class=""curr""><a href=""?stype="&stype&"&key="&key &""">全部</a></li>"

Else

   echo "<li><a href=""?stype="&stype&"&key="&key &""">全部</a></li>"

End If



If ChannelID=Then

echo "<li class=""curr""><a href=""?stype="&stype&"&key="&key &"&m=1"">文章</a></li>"

Else

   echo "<li><a href=""?stype="&stype&"&key="&key &"&m=1"">文章</a></li>"

End If

If ChannelID=2 Then

echo "<li class=""curr""><a href=""?stype="&stype&"&key="&key &"&m=2"">图片</a></li>"

Else

   echo "<li><a href=""?stype="&stype&"&key="&key &"&m=2"">图片</a></li>"

End If

If ChannelID=5 Then

echo "<li class=""curr""><a href=""?stype="&stype&"&key="&key &"&m=5"">商品</a></li>"

Else

   echo "<li><a href=""?stype="&stype&"&key="&key &"&m=5"">商品</a></li>"

End If



End Sub

 因为该部分修改的可能性很小,所以做成这样静态的,如果你的站点模型改动比较大,可以考虑为模型加个字段,判断是否允许为搜索Menu。上述是根据个人需要所做的修改,如果不能让你满意,欢迎分享一下你的方法。