家园首页 Php4手册 我的相册 家园下载 个人文集 给我留言
我形我塑,网络相册,www.5x54.com 相册 相册 心情相册,少女相册 免费申请,我形我塑免费相册
 家园 个人文集   http://www.5x54.com
 


“动易”在开源版制作一个系统标签


作者:tao1112    点击: 读取中...

在组件版中用自定义标签可以实现大部分的功能 (%$$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

收藏此文章     打印  更新     编辑此文章    『关闭窗口』