用”文章搜索”标签实现多个关键字搜索

作者:cicna 来源:本站原创 点击数: 发布时间:2010年06月13日

     用”文章搜索”标签实现多个关键字搜索,包含标题、内容、作者、录入、关键字…

效果图:
           
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