CMS发布静态新闻页面浏览计数功能实现

2015-04-02 12:05李悦
软件导刊 2015年2期

摘要:网站新闻浏览计数是衡量新闻内容是否吸引访问者的一个重要指标。动态程序发布网站新闻浏览计数非常容易,但对于内容管理软件(CMS)发布的静态新闻页面浏览计数是一个难点。采用ASP+ACCESS实现了静态新闻页面的浏览计数功能。

关键词关键词:CMS;浏览计数;内容管理软件;ASP;ACCESS

DOIDOI:10.11907/rjdk.143757

中图分类号:TP302.7

文献标识码:A文章编号文章编号:16727800(2015)002004002

作者简介作者简介:李悦(1978-),女,陕西西安人,陕西省图书馆网络技术部馆员,研究方向为Web标准构建网站、图书馆管理系统辅助软件开发。

0引言

使用动态程序发布网站新闻页面,对应新闻记录在数据库唯一记录标识,计数代码很容易获取,以此实现新闻浏览计数功能。

内容管理软件采用静态页面生成技术,将文档库中的内容结合HTML 页面模板,生成最终的HTML页面,以提高网站的访问效率。内容管理软件发布的静态新闻页面实现计数功能原理与动态程序实现计数功能相同,浏览计数程序同样需要获取可以唯一标识该静态页面的特征来实现计数功能。内容管理软件生成的静态页面由于无法获取记录ID等唯一值,因此需要利用其它标识来唯一标识该页面。经研究发现,新闻不见得具有唯一性。因此,决定使用新闻和新闻页面发布后的链接地址(形如 http://www.sxlib.org.cn/shaoer/ 200708/t2007 0820_30475.htm)两个标识,组合起来唯一标识静态页面。

1静态新闻页面浏览计数功能实现

1.1实现原理

内容管理软件以TRS WCM 内容协作平台[1] (以下简称TRS WCM)为例,TRS WCM模板发布后生成静态新闻页面,通过在模板中的TRS置标获得新闻和新闻发布后链接地址,利用JavaScript代码将新闻和新闻发布后的链接地址作为参数传递给asp页面,由asp代码实现新闻阅读次数的计数功能,同时在新闻页面显示浏览次数。

计数功能的实现包括两部分:①内容管理软件发布的静态页面。在静态页面中将唯一标识静态页面的参数,通过内嵌在页面中的JavaScript代码传递给的ASP计数代码[2];②ASP计数代码的具体实现。

1.2内容管理软件模板中内嵌的JavaScript代码

在TRS WCM模板中加入JavaScript代码,模板发布新闻页面后,计数代码在网页中显示浏览次数。在浏览器中刷新静态新闻页面一次,页面调用asp计数代码一次,计数值增加一次,页面显示效果如图1所示。

内容管理软件新闻模板中的代码如下:

模板发布后,生成html页面代码如下:

代码详细说明:

(1)/jishu/jishu.asp

说明:因为新闻页面相对网站根目录的目录层次不同,因此采用统一的“/jishu/jishu.asp”形式调用。

计数代码,即相对根目录的路径调用计数器代码。

(2)

说明:显示新闻字段的内容。

(3)

说明:显示新闻发布链接地址,形如http://www.sxlib.org.cn/shaoer/ 200708/t20070820_30475.htm。

图1静态新闻页面浏览计数显示效果

1.3ASP浏览计数代码实现

(1)数据库设计。使用ACCESS建立jishu表,jishu表字段结构见表1。

表1计数表

字段名称[]字段类型[]字段说明

ID[]自动编号[]记录编号

title[]文本[]新闻

link[]备注[]新闻发布完整链接地址

c[]数字[]浏览次数计数器

(2)ASP浏览计数代码。利用参数传递title及link值,在计数表中使用链接地址查找是否存在对应的计数记录。查到对应的计数记录,计数器加1,并且判断新闻是否发生变化,发生变化时更新字段;未查到对应计数记录,添加新记录,title 和link字段分别赋值,并初始化计数器,初始值为1。详细计数代码如下:

<%@language=vbscript%>

<!--#include file="link.asp" -->

<%

link=request.querystring("link")

title=server.htmlencode(request.querystring("title"))

set rs=server.createobject("adodb.recordset")

rs.open "select * from jishu where link='"& link &"'",conn,1,3

if rs.recordcount>0 then

if rs("title")<>title then

rs("title")=title

end if

rs("c")=rs("c")+1

rs.update

else

rs.close

rs.open "jishu",conn,1,3

rs.addnew

rs("link")= link

rs("title")=title

rs("c")=1

rs.update

end if

%>

document.write(<%=rs("c")%>)

<%

rs.close

set rs=nothing

conn.close

set conn=nothing

%>

1.4静态新闻浏览排行功能

使用计数表实现静态新闻浏览次数排行功能,排行页面显示效果如图2,点击新闻,可以打开对应的新闻页面。

图2新闻点击排行榜

2结语

静态页面浏览计数代码应用在网站新闻页面中,达到了预期的静态页面浏览计数效果,使网站具备灵活的页面浏览计数功能。本文以TRS WCM内容协作平台为例,该方法同样可以与其它内容管理软件结合使用,实现静态页面的浏览计数功能。

参考文献参考文献:

\[1\]北京拓尔思信息技术有限公司.TRS 内容协助平台用户手册[EB/OL]. http://www.87994.com/read/8bfefc1602583ae5843a95e1.html.

[2]冯昊.ASP动态网页设计与应用[M]. 北京:清华大学出版社,2013.

责任编辑(责任编辑:杜能钢)