在组件版中用自定义标签可以实现大部分的功能
(%$$177#^67)心情家园www.bbsdiy.net 不过自定义标签有一些限制,比如里面不能插入asp语句.我们可以参考系统标签的流程,添加自己的标签
(%$$177#^67)心情家园www.bbsdiy.net 下面举个例子,增加一个标签{$ShowArticleContent(Article)}用来显示指定文章的内容
(%$$177#^67)心情家园www.bbsdiy.net 需要修改的文件是include文件夹里面的PowerEasy.Common.Front.asp文件.
(%$$177#^67)心情家园www.bbsdiy.net 1.首先在页面中加入添加判断是否存在这个标签的代码
(%$$177#^67)心情家园www.bbsdiy.net '替换{$ShowArticleContent(Article)}标签
(%$$177#^67)心情家园www.bbsdiy.net regEx.Pattern = "\{\$ShowArticleContent\((.*?)\)\}"
(%$$177#^67)心情家园www.bbsdiy.net Set Matches = regEx.Execute(strHtml)
(%$$177#^67)心情家园www.bbsdiy.net For Each Match In Matches
(%$$177#^67)心情家园www.bbsdiy.net arrTemp = Split(Match.SubMatches(0), ",") //0表示只有一个参数
(%$$177#^67)心情家园www.bbsdiy.net If UBound(arrTemp) 0 Then
(%$$177#^67)心情家园www.bbsdiy.net strArtcileContent = "函数式标签:{$ShowArticleContent(参数列表)}的参数个数不对。请检查模板中的此标签。"
(%$$177#^67)心情家园www.bbsdiy.net Else
(%$$177#^67)心情家园www.bbsdiy.net strArtcileContent = GetAC(arrTemp(0)) //这个是自己定义的取文章内容的函数
(%$$177#^67)心情家园www.bbsdiy.net End If
(%$$177#^67)心情家园www.bbsdiy.net strHtml = Replace(strHtml, Match.value, strArtcileContent)
(%$$177#^67)心情家园www.bbsdiy.net Next
(%$$177#^67)心情家园www.bbsdiy.net 这段代码可以加入2277行下面
(%$$177#^67)心情家园www.bbsdiy.net 然后需要加入Dim strArtcileContent的定义.可以定义在这个文档的前面
(%$$177#^67)心情家园www.bbsdiy.net 2.加入GetAC()函数,用来获取指定id的文章内容
(%$$177#^67)心情家园www.bbsdiy.net '==================================================
(%$$177#^67)心情家园www.bbsdiy.net '函数名:GetArticleContent
(%$$177#^67)心情家园www.bbsdiy.net '作 用:得到指定文章的html代码
(%$$177#^67)心情家园www.bbsdiy.net '参 数:ArticleID
(%$$177#^67)心情家园www.bbsdiy.net '==================================================
(%$$177#^67)心情家园www.bbsdiy.net Function GetAC(ArticleID)
(%$$177#^67)心情家园www.bbsdiy.net Dim sql,str,rs,ChannelDir1,UploadDir1,sqlChannel,rsChannel,TrueSiteUrl
(%$$177#^67)心情家园www.bbsdiy.net TrueSiteUrl = Trim(Request.ServerVariables("HTTP_HOST"))
(%$$177#^67)心情家园www.bbsdiy.net sqlChannel="select ChannelDir,UploadDir from PE_Channel where ChannelID=(select ChannelID from PE_Article where ArticleID="&ArticleID&")"
(%$$177#^67)心情家园www.bbsdiy.net Set rsChannel = Conn.Execute(sqlChannel)
(%$$177#^67)心情家园www.bbsdiy.net If Not(rsChannel.BOF And rsChannel.EOF) Then
(%$$177#^67)心情家园www.bbsdiy.net ChannelDir1=rsChannel("ChannelDir")
(%$$177#^67)心情家园www.bbsdiy.net UploadDir1=rsChannel("UploadDir")
(%$$177#^67)心情家园www.bbsdiy.net rsChannel.Close
(%$$177#^67)心情家园www.bbsdiy.net Set rsChannel = Nothing
(%$$177#^67)心情家园www.bbsdiy.net end if
(%$$177#^67)心情家园www.bbsdiy.net sql="select Content from PE_Article where ArticleID="&ArticleID
(%$$177#^67)心情家园www.bbsdiy.net Set rs = Conn.Execute(sql)
(%$$177#^67)心情家园www.bbsdiy.net If rs.BOF And rs.EOF Then
(%$$177#^67)心情家园www.bbsdiy.net str = "找不到相应文章的内容"
(%$$177#^67)心情家园www.bbsdiy.net Else
(%$$177#^67)心情家园www.bbsdiy.net str = ReplaceKeyLink(ReplaceText(Replace(Replace(rs("Content") & "", "[ InstallDir_ChannelDir ]", "http://" & TrueSiteUrl & InstallDir&ChannelDir1 & "/"), "{ $UploadDir }", UploadDir1), 1))
(%$$177#^67)心情家园www.bbsdiy.net str = Replace(str,"onmousewheel=""return bbimg(this)""", "")
(%$$177#^67)心情家园www.bbsdiy.net str = Replace(str,"onload=resizepic(this)", "")
(%$$177#^67)心情家园www.bbsdiy.net End If
(%$$177#^67)心情家园www.bbsdiy.net rs.Close
(%$$177#^67)心情家园www.bbsdiy.net Set rs = Nothing
(%$$177#^67)心情家园www.bbsdiy.net GetAC = str
(%$$177#^67)心情家园www.bbsdiy.net End Function
(%$$177#^67)心情家园www.bbsdiy.net ps
(%$$177#^67)心情家园www.bbsdiy.net [ InstallDir_ChannelDir ]还有{ $UploadDir }中的空格需要去掉,因为直接发出来代码会给替换掉所以这里做了处理
(%$$177#^67)心情家园www.bbsdiy.net 这些代码可以加在287行下面
(%$$177#^67)心情家园www.bbsdiy.net 保存之后.在模版页中插入{$ShowArticleContent(参数)},参数是文章的id,就可以取出指定id文章的内容
(%$$177#^67)心情家园www.bbsdiy.net
(%$$177#^67)心情家园www.bbsdiy.net 原文:http://help.powereasy.net/help/SiteWeaver/1635.html
|