用”文章搜索”标签实现多个关键字搜索
用”文章搜索”标签实现多个关键字搜索,包含标题、内容、作者、录入、关键字…
效果图:
a1.jpg (大小:42.5 K 下载次数:8)
按文章标题的搜索结果:
a2.jpg (大小:9 K 下载次数:7)
按文章内容搜索:
a3.jpg (大小:14.3 K 下载次数:10)
按文章内容搜索结果:
a4.jpg (大小:8.8 K 下载次数:9)
实现这种功能有好多种办法,常见的有JS分割字符+ 动易URL参数传递实现,和XSLT递归分割字符+模板嵌套实现。现在我们就来实现第一种简单而实效的方法。
1. 在后台的“模板管理”找到“默认文章首页模板.html ”
a5.jpg (大小:25 K 下载次数:10)
编辑该模板,在你需要 显示搜索 的位置插入 {PE.Label id="文章搜索" span="" class="" /}
然后查看一下,文章中心节点是否绑定这个“默认文章首页模板.htm”
当然,你也可以将这个“文章搜索”标签放在其它文章模板里,随自已喜欢,这里只作个测试。
a6.jpg (大小:115 K 下载次数:11)
2.我们先在网站根目录下找到该文件Config QueryStrings.config 用记事本打开,添加几个URL传递参数,
在 与 之间,添加以下参数.
a7.jpg (大小:41.1 K 下载次数:10)
记得按保存。 *_*
说明:param 参数类型,name 参数名称,datatype 数据类型,optional 功能选项
3.回到网站后台管理,在 模板标签管理 --> 标签管理,找到“文章搜索“标签,编辑里面的内容,替换为以下代码:
文章搜索:
高级搜索
说明: {PE.Label id="栏目分类下拉列表选项" nodeId="@RequestInt_Id" depth="5" /}
nodeId 节点的ID 可以直接改为你所添加”文章搜索”标签的节点ID
split(“ “) JS分割字符函数
动易系统的URL传递参数
window.location = "{PE.SiteConfig.applicationpath/}search.aspx?searchtype=1&ModelId=1&nodeId=" + nodeId + "&stra=" + escape(stra) + "&strb=" + escape(strb) + "&strc=" + escape(strc) + "&fieldOption=" + fieldOption;
4. 再次回到网站管理后台的“模板管理”中找到”文章栏目搜索页模板.html”, 编辑里面的内容,
将{PE.Label id="文章栏目内搜索" titleLength="50" contentLength="0" parentId="@RequestInt_nodeid" fieldname="@Request_fieldoption" fieldvalue="@Request_keyword" /}
替换为以下代码:
{PE.Label id="文章栏目内搜索" titleLength="60" contentLength="100" outputQty="10" parentId="@RequestInt_nodeid" fieldname="@Request_fieldoption" stra="@Request_stra" strb="@Request_strb" strc="@Request_strc" linkOpenType="1" /}
5. 在 模板标签管理 标签管理,找到” 文章栏目内搜索”标签,编辑里面的内容,点下一步,在设置标签参数里添加三个参数,
参数名称分别为: stra strb strc 数据类型 supersql 默认值为空。
a8.jpg (大小:51.2 K 下载次数:9)
点击下一步,下一步,到”标签内容编辑”里,输入以下代码。并且点击“完成”保存。
没有任何相关搜索结果!
{PE.Label id="文章栏目内搜索_" titleLength="" contentLength="" linkOpenType="" stra="" strb="" strc="" queryCond="SELECT TOP @pagesize *
FROM PE_CommonModel CM INNER JOIN PE_U_Article UT ON (CM.ItemID = UT.ID)
WHERE CM.NodeID IN () AND CM.Status = 99
title'">
AND (CM.Title LIKE '%%' OR CM.Title LIKE '%%' OR CM.Title LIKE '%%')
content'">
AND (UT.Content LIKE '%%' OR UT.Content LIKE '%%' OR UT.Content LIKE '%%')
author'">
AND (UT.Author LIKE '%%' OR UT.Author LIKE '%%' OR UT.Author LIKE '%%')
inputer'">
AND (CM.Inputer LIKE '%%' OR CM.Inputer LIKE '%%' OR CM.Inputer LIKE '%%')
keyword'">
AND (UT.Keyword LIKE '%%' OR UT.Keyword LIKE '%%' OR UT.Keyword LIKE '%%')
AND CM.GeneralID NOT IN (
SELECT TOP @startrow ICM.GeneralID
FROM PE_CommonModel ICM INNER JOIN PE_U_Article IUT ON ICM.ItemID = IUT.ID
WHERE ICM.NodeID IN () AND ICM.Status = 99
AND (ICM.Title LIKE '%%' OR ICM.Title LIKE '%%' OR ICM.Title LIKE '%%')
AND (IUT.Content LIKE '%%' OR IUT.Content LIKE '%%' OR IUT.Content LIKE '%%')
AND (IUT.Author LIKE '%%' OR IUT.Author LIKE '%%' OR IUT.Author LIKE '%%')
AND (ICM.Inputer LIKE '%%' OR ICM.Inputer LIKE '%%' OR ICM.Inputer LIKE '%%')
AND (IUT.Keyword LIKE '%%' OR IUT.Keyword LIKE '%%' OR IUT.Keyword LIKE '%%')
ORDER BY ICM.UpdateTime)
ORDER BY CM.UpdateTime" queryCount="SELECT COUNT (ICM.GeneralID)
FROM PE_CommonModel ICM INNER JOIN PE_U_Article IUT ON ICM.ItemID = IUT.ID
WHERE ICM.NodeID IN () AND ICM.Status = 99
AND (ICM.Title LIKE '%%' OR ICM.Title LIKE '%%' OR ICM.Title LIKE '%%')
AND (IUT.Content LIKE '%%' OR IUT.Content LIKE '%%' OR IUT.Content LIKE '%%')
AND (IUT.Author LIKE '%%' OR IUT.Author LIKE '%%' OR IUT.Author LIKE '%%')
AND (ICM.Inputer LIKE '%%' OR ICM.Inputer LIKE '%%' OR ICM.Inputer LIKE '%%')
AND (IUT.Keyword LIKE '%%' OR IUT.Keyword LIKE '%%' OR IUT.Keyword LIKE '%%')
" page="true" pagesize="" urlpage="true" /}
说明:
AND (CM.Title LIKE '%%' OR CM.Title LIKE '%%' OR CM.Title LIKE '%%')
这里主要是SQL查询语句,例如查询“标题”,主要标题中包含其中有一个关键字,就把该文章查找出来。
如有需要,可以更改为你自己想要的查询查结果语句。
6. 在 模板标签管理 标签管理,找到” 文章栏目内搜索_普通式”标签,编辑里面的内容,点下一步,在设置标签参数里添加三个参数,参数名称分别为: stra strb strc 数据类型 supersql 默认值为空。
a9.jpg(大小:37.8 K 下载次数:9)
点击下一步,下一步,到”标签内容编辑”里,输入以下代码。并且点击“完成”保存。
_self
_blank
_blank
_self
说明:
说明:
这里主要是把关键字高亮显示的效果,用嵌套实现。
pe:HighLightText(pe:CutText(Title,$titleLength,'…'),$stra,'color:red')
7.在前台打开你的文章中心,输入多个关键字试试. *_* 大功告成!!!
附件:文章搜索标签.rar