说是指南,有点夸大其词了,下面你将看到的内容是由一个asp菜鸟提供,所以开始之前请先备份好你的页面哦,本菜鸟不保证一下内容准确无误,但是保证,按照本指南开发,能够实现你想要的功能。
5ucms的站内搜索其实只包含了两个方面的搜索,一个是标题,另外一个是描述:
if Ktype = “title” then
Searchstr = “Where [Title] Like ‘%” & key & “%’ else
Searchstr = “Where [Title] Like ‘%” & key & “%’ Or [Description] Like ‘%” & key & “%’
end if
这样的站内搜索对于企业站来说太过简陋了,其展现的形式只能是标题,描述,十分枯燥,加入你想输出个缩略图、自定义模型中的字段,都不行。
自己动手,丰衣足食,只要你理解了这个思路其实是可以的。
个问题:高级搜索样式的定义
方案一:前台增加input框 select框等,在asp程序中加入相应的条件,其写法依然是if else end if等,我这里不贴代码了,给大家提供一个思路。加入你只想做一个站内产品的搜索,那么你完全可以按照下面的代码来:
if Ktype = “title” then
Searchstr = “Where [Title] Like ‘%” & key & “%’ and [Cid] in(33,32,31,30,29,28,27,26)”
else
Searchstr = “Where [Title] Like ‘%” & key & “%’ Or [Description] Like ‘%” & key & “%’ and [Cid] in(33,32,31,30,29,28,27,26)”
end if
其中33,32,31,30,29,28,27,26就是产品中心下的各个分类。这样的sql语句表示,本搜索只搜搜33,32,31,30,29,28,27,26这些栏目的内容,其结果不包含新闻。这就是站内产品搜索了。
另外一点,加入你想在搜索展示的页面中加入一些个性化的展示结果,如下图
那么就得接着看了,加入你只要标题、列表的输出样式,这个时候你就可以结束本文,回去开工了!
个性化的输出内容,其实包括很多内容,有自定义模型中的自定义字段,还有产品图片,这些都可以作为我们输出的内容。
在程序中有这样一句话:
dim SQL,Rs,i,j,Searchstr,aTitle,aDescription,aUrl,aDateTime,aAuthor,aIndexpic,aModeIndex,aFormID,pro_cid,pro_pq,pro_ly,pro_yt
这就是定义我们在输出变量值和替换模板中标签的时候索要用的变量,所以说,你想要输出多少就得在这里定义多少变量,然后还得修改sql语句:
SQL = “Select Top ” & plus.Config(“maxsize”) & ” [ID],[Cid],[Title],[Author],[Indexpic],[ModeIndex],[Description],[Diyname],[Createtime],[Viewpath],[FormID] From [{pre}Content] ” & Searchstr & ” Order BY [ID] Desc”
其实将诸多字段改成*会更省事,但是考虑到程序的执行效率,还是加字段吧。然后下面是输出变量,自己对这着来吧,上面定义的有用变量都要在这里赋值输出。
aUrl = BuildViewPath(Rs(“ID”),Rs(“Cid”),Rs(“Diyname”),Rs(“Createtime”),Rs(“Viewpath”))
aTitle = Rs(“Title”)
aAuthor = Rs(“Author”)
aIndexpic=RS(“Indexpic”)
aModeIndex=RS(“ModeIndex”)
aFormID=RS(“FormID”)
pro_cid=split(split(aModeIndex,”<pro_cid>”)(1),”</pro_cid>”)(0)
pro_pq=split(split(aModeIndex,”<pro_pq>”)(1),”</pro_pq>”)(0)
pro_yt=split(split(aModeIndex,”<pro_yt>”)(1),”</pro_yt>”)(0)
pro_ly=split(split(aModeIndex,”<pro_ly>”)(1),”</pro_ly>”)(0)
然后再这里处理的过程中,其实我偷懒了,不过也是没有办法的事情,asp一点都不懂,只能走捷径了。
正常的程序流程应该是,从content表中查出来formid的值,然后以这个值从fromfield表中,搜出来各个字段的名称,然后用字段名称在amodeindex中进行截取,这里我直接用自定义字段名进行操作了。恕罪!
然后就该替换标签了:
html = html & Vbcrlf & Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(TempNow,”$aurl”, aUrl),”$atitle”, atitle),”$adescription”, adescription),”$adatetime”, adatetime),”$aauthor”, aAuthor),”$indexpic”,aIndexpic),”$pro_cid”,pro_cid),”$pro_pq”,pro_pq),”$pro_yt”,pro_yt),”$pro_ly”,pro_ly)
再接下来就是修改setting.xml:
<li>
<a href=”$aurl”><img src=”$indexpic” border=”0″/></a>
<div>
<p class=’tit’><a href=”$aurl”>$atitle</a><span>产品型号:$pro_cid</span></p>
<p class=’con’>$adescription…</p>
<p class=’abt’><span>品牌:$pro_pq</span> <span>应用领域:$pro_ly</span> <span>所属用途:$pro_yt</span></p>
</div>
</li>
到这里,就完成了定制!
上一篇: 5ucms v3 bug汇总
下一篇: 5ucms各种高亮菜单显示
游客回答:(0)