您所在的位置:小祥子 » 代码研究 » 正文

第五期:新云SHOW.ASP文件分析及二次开发

时间:2015-01-20 编辑:本站 来源:本站原创

这是第五期代码研究,今天分析下新云的一个show.ASP文件并且二次开发一个小功能,每天给代码写备注感觉没意思,今天来点新鲜的。

程序:新云cms4.0sp2

文件位置:common/news/show.asp

文件说明:这个文件主要控制新云文章内容以及相关标签。

看一串新云的模板标签,用于新云内容页的

{$xml:datalist id="relatedlist" file="related.xslt"  length="38" maxnum="12" }

这段代码来源于新云内容页,显示与当前文章相关的文章,新云的这个功能不是很智能,取当前文章标题的前几个字,然后对比其他文章,一样的就算相关的。当然你也可以在后台文章的相关文章这里写关键词,不过很少人会把信息填这么全,做网站就是要简单好,最多填个TAGS。今天就从TAGS下手,让这里的相关文章变成相关TAGS。

例:A文章有TAG“X”,B文章也有TAG“X”,我就算他们相关,再使用上面的标签他们就互相显示。

找到第647行

strKey = NewAsp.CheckSpecialChar(Left(m_strTitle,4))

下面添加

 '***********添加的代码***************
 Dim XTags,Xtag '定义变量
 XTags=Split(Taglist, "|")(0) 'm_strTagtitle,m_strTagslist,Taglist,IsOutTags '获取当前文章的TAGS
 XTag=Split(XTags, "}{") ‘将tags分割成数组
 '***********添加的代码***************

然后第687行下面,也就是Select Case stype上面最后的一个Else下添加

'**********************添加
   If UBound(XTag)>0 Then ‘有tag的话就执行
   strLikeQuery = " (InStr(1,LCase(A.Taglist),LCase('{"&replace(replace(XTag(0),"{",""),"}","")&"}'),0)>0)"
   For i = 1 To UBound(XTag) '循环为SQL语句添加条件语句
   strLikeQuery = strLikeQuery&" Or (InStr(1,LCase(A.Taglist),LCase('{"&replace(replace(XTag(i),"{",""),"}","")&"}'),0)>0)"
   Next
   Else  '没tag还是按以前的方式显示相关文章
   strLikeQuery = "(InStr(1,LCase(A.title),LCase('"& strKey &"'),0)>0)"
   End If
   '*****************添加

下面还有个strLikeQuery = "(InStr(1,LCase(A.title),LCase('"& strKey &"'),0)>0)" 删除掉

以上啥意思呢,看'后面的注释。

再为这个页面主要的几个过程和方法做个注释

Sub LoadArticleData() '读取当前文章的各种信息,比如标题、内容等。

Sub ContentPagination(strText) '分页过程

Function GetFirstlink() '读取上一篇文章的方法

Function GetLastlink() ‘读取下一篇文章

Function GetHtmlPageFile(page) '获取当前文章的HTML路径

Function GetNewsContent() '读取当前文章的内容,当文章设置了游客不能浏览的时候

Sub ParseDataNode(sToken,sVariant) '标签替换的过程

Sub TPL_ParseArea(sTokenName, sTemplate) '分页

Function GetGoodWidth(sVariant) '读取好评

Function GetBadWidth(sVariant) ‘读取差评个数

Function ThisClassLinks()’读取当前分类URL

Function ThisHtmlLinks()‘读取当前页面URL

Function CommentsLinks()'读取评论详情页

Sub GetTagsList(strTag) ‘获取TAGS列表

Function BackHtmlLinks(ByVal stype,ByVal sVariant) ‘显示上一页 下一页

Function NextHtmlLinks(ByVal stype,ByVal sVariant)

Public Function GetDescription(iVariant) ‘显示描述,可读取文章前多少个字当描述

关键词:新云 show 文件 tag 相关