动易SiteWeaver利用自定义标签实现随机文章列表

王朝网站推广·作者佚名  2011-12-04
窄屏简体版  字體: |||超大  

在页面中添加一个随机文章列表的好处是降低站内页面相似度,避免对搜索引擎将页面当做复制页面来处理。我的QQ代码站,这个站就是这种情况。那么要实现的功能是:输出一个随机文章列表,每次生成HTML页面时,列表都不相同,每个页面的列表也各不相同,当然,如果不生成静态的话,那么每次刷新页面,列表也会变化。

动易SiteWeaver本身没有提供生成随机文章列表的功能,也没有相关的插件,要实现这个功能只能使用动易的自定义标签了,下面提供两种版本,Access版的和SQL版的,SQL版的是引用动易论坛小码哥所写的。

一、动易SiteWeaver+SQL数据库实现随机文章列表:

在后台自定义标签管理里新建一个函数标签:

标签名称:{$MY_随机文章} -可自定义标签名称

查询语句:select top 10 ArticleID,ClassID,Title,UpdateTime from PE_Article where ChannelID in ({input(0)}) and ClassID in ({input(1)}) and DateDiff(day,UpdateTime,getdate())<7 and Deleted=0 and Status=3 Order by newid()

标签内容:{Loop}{Infobegin}{$Field(2,Text,22,2,1)}

{Infoend}{/Loop}

调用方法:在模板里适当位置加入:{$MY_随机文章(频道ID,栏目ID)}即可,频道ID,栏目ID根据自己实际修改。

说明:

1、select top 10.... 中的10是要查询的文章数,可以自己改,但建议不要改的太大。

2、如果不想按栏目调用,而是调用某一个频道下的文章,那么可以把ChannelID in ({input(0)}) and ClassID in ({input(1)}) 修改为:ChannelID in ({input(0)}) ,相应的,调用标签就是:{$MY_随机文章(频道ID)}了。

3、DateDiff(day,UpdateTime,getdate())<7....中的7是指查询最近7天的文章,根据你的需要修改。

二、动易SiteWeaver+Access数据库实现随机文章列表:

在后台自定义标签管理里新建一个函数标签:

标签名称:{$MY_随机文章}-可自定义标签名称

查询语句:select top 10 ArticleID,ClassID,Title,UpdateTime from PE_Article where ChannelID in ({input(0)}) and ClassID in ({input(1)}) and DateDiff("d",date(),UpdateTime)<7 and Deleted={$PE_False} and Status=3 Order by right(cstr(Rnd(-int(ArticleID+rnd(-timer())*100)))*1000*Now(),2);

标签内容:{Loop}{Infobegin}

{$Field(2,Text,44,2,1)}

{Infoend}{/Loop}

调用方法:同上。

说明:同上。

在access中实现随机真是太麻烦了,这个标签的核心句子是:Order by right(cstr(Rnd(-int(ArticleID+rnd(-timer())*100)))*1000*Now(),2)这一句,在SQL中一个函数就能实现的东西在access中却要套这么多层,不过这个句子保证了随机性,具体效果可以看我这个栏目下的文章页http://www.ttome.com/qzcode/。

要说明的是:好的效果实在损失性能的前提下实现的,这句代码效率很低,所以如果生成大量静态页面,建议在访客较少的时候进行。一次尽量少生成一些,或者你也可以修改动易安装目录下的Config.asp文件中的:

Const MaxPerPage_Create = 10 '一次生成的数量,把他改小一些。

Const SleepTime = 3 '生成的间隔时间,把他改大一些。

又或者你不是很在乎每篇文章的随机性,那么你可以精简“Order by right(cstr(Rnd(-int(ArticleID+rnd(-timer())*100)))*1000*Now(),2) ”,期待高手写出效率更高的句子,或者直接写个插件出来,呵呵。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航