您现在的位置: 动易技术中心 >> 动易产品知识库 >> SiteWeaver常见问题 >> 正文
在开源版制作一个系统标签

在组件版中用自定义标签可以实现大部分的功能

不过自定义标签有一些限制,比如里面不能插入asp语句.我们可以参考系统标签的流程,添加自己的标签

下面举个例子,增加一个标签{$ShowArticleContent(Article)}用来显示指定文章的内容

需要修改的文件是include文件夹里面的PowerEasy.Common.Front.asp文件.

1.首先在页面中加入添加判断是否存在这个标签的代码

'替换{$ShowArticleContent(Article)}标签

    regEx.Pattern = "\{\$ShowArticleContent\((.*?)\)\}"
    Set Matches = regEx.Execute(strHtml)
    For Each Match In Matches
        arrTemp = Split(Match.SubMatches(0), ",")  //0表示只有一个参数
        If UBound(arrTemp) <> 0 Then 
            strArtcileContent = "函数式标签:{$ShowArticleContent(参数列表)}的参数个数不对。请检查模板中的此标签。"
        Else
            strArtcileContent = GetAC(arrTemp(0))  //这个是自己定义的取文章内容的函数
        End If
        strHtml = Replace(strHtml, Match.value, strArtcileContent)
    Next
 这段代码可以加入2277行下面

然后需要加入Dim strArtcileContent的定义.可以定义在这个文档的前面

2.加入GetAC()函数,用来获取指定id的文章内容

'==================================================
'函数名:GetArticleContent
'作  用:得到指定文章的html代码
'参  数:ArticleID
'==================================================
Function GetAC(ArticleID)
Dim sql,str,rs,ChannelDir1,UploadDir1,sqlChannel,rsChannel,TrueSiteUrl
TrueSiteUrl = Trim(Request.ServerVariables("HTTP_HOST"))
sqlChannel="select ChannelDir,UploadDir from PE_Channel where ChannelID=(select ChannelID from PE_Article where ArticleID="&ArticleID&")"
Set rsChannel = Conn.Execute(sqlChannel)
If Not(rsChannel.BOF And rsChannel.EOF) Then
ChannelDir1=rsChannel("ChannelDir")
UploadDir1=rsChannel("UploadDir")
    rsChannel.Close
    Set rsChannel = Nothing
end if

sql="select Content from PE_Article where ArticleID="&ArticleID
    Set rs = Conn.Execute(sql)
    If rs.BOF And rs.EOF Then
        str = "找不到相应文章的内容"  
 Else
 str = ReplaceKeyLink(ReplaceText(Replace(Replace(rs("Content") & "", "[ InstallDir_ChannelDir ]", "http://" & TrueSiteUrl & InstallDir&ChannelDir1 & "/"), "{ $UploadDir }", UploadDir1), 1))
 str = Replace(str,"onmousewheel=""return bbimg(this)""", "")
    str = Replace(str,"onload=resizepic(this)", "")
    End If
    rs.Close
    Set rs = Nothing
 GetAC = str
End Function

ps

[ InstallDir_ChannelDir ]还有{ $UploadDir }中的空格需要去掉,因为直接发出来代码会给替换掉所以这里做了处理

这些代码可以加在287行下面

保存之后.在模版页中插入{$ShowArticleContent(参数)},参数是文章的id,就可以取出指定id文章的内容

文章录入:tao1112    责任编辑:tao1112 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    动易SiteFactory标签说明
    动易2006网站标签说明列表
    动易用户手册
    联系我们 | 关于动易 | 网站地图 | 相关证书 | 合作伙伴 | 招贤纳士 | 法律条款 | 隐私权声明
    安全上网网上报警
    动易网络科技有限公司版权所有 © 2003-  粤ICP备05004015号
    公安备案编号:4406063010734 本站基于 PowerEasy® SiteWeaver™ 制作