关于织梦CMS用火车头自动发布文章并更新HTMl

DEDE使用火车采集器实现的自动实时发布文章和更新HTMl的功能。


一,为什么有这个想法: 

使用火车发布文章,有三大不足。 

需要登陆发布,受DEDE系统限制太大 

就是一次发布的数量有限制,可能造成一次性发布太多遭K的恶果 

如果网站首页是静态文件,则不能更新首页,用户就不知道网站的更新情况 

如果没有一台可以一直运行的服务器,使用火车采集器的自动更新功能就不太现实 

火车采集器的自动更新功能是收费的,呵呵。 

自己需要咯,想挑战一下自己咯等。


二,Do it. 

首先想到,让火车发布大量数据,且将文章属性设置为未审核状态,这个问题很简单,使用DEDEv5.3.1时却遇到DEDE的一个Bug。就是未审核的文章居然会在前台显示。先是对DEDE一气臭骂,后来找了一些原因,发现了DEDEv5.3.1中的一个Bug.经修复后可以实现未审核的文章不在前台显示。1月13号到DEDE报告Bug以后,1月14号DEDE出的补丁中修复了这个问题,呵呵,所以,1月15号,就是今天咯,开始正式整理此开发文档。 

实际发现,发布和保存大量未审核文章不成问题,难在如何实现随机激发发布功能。想了很久,觉得使用时间限制最好。当前台JS调用了审核文章的链接,传递一个访问用户的信息,程序取得用户的IP并保存为SESSION信息,此时,审核一篇文章并生成文章与首页静态文件。一个用户在一定的时间内,只能激活限定数量的文章,且,发布时使用此用户的IP信息,呵,挺个性的。 

激活文章,生成文章静态页和首页静态文章,受网站模板的影响,可能会比较慢,则会出现首页未生成完页面就被关闭的问题。所以,最好的办法是,在发布时文章时就生成文章静态文件,然后把文章设置为未审核状态。激活文章时则只需要很短的查询。首页或者列表页尽量使用动态页,这两个问题不好处理,只能以此法代之。 

完整的过程就是,发布文档时,将文档设置为未审核状态;调用程序时,先判断上一次查询的缓存有没有超时,如果超过缓存时间,则清除缓存,以显示最新的文章。清除缓存以后,查询出一定数量属性为未审核的文档,将Archives和Arctiny表中的未审核属性取消,并更新一下文档的Pubdate字段,实现一点随机化。最后写入缓存,禁止缓存有效期内的重复更新!


三,文件使用方法: 


发布文档时请把文档属性设置为未审核状态,即发布时提交的文档属性参数为:arcrank=-1,这时为动态浏览;

如果你想生成静态文档,请将文档状态设置为正常浏览状态,即arcrank=0;然后修改默认文档添加程序。 

如:arcticle_add.php,在文件最下边“//生成HTML”处添加一段代码: 


//生成HTML 

InsertTags($tags,$arcID); 

$artUrl = MakeArt($arcID,true,true); 


if($artUrl=='') 

$artUrl = $cfg_phpurl."/view.php?aid=$arcID"; 

$dsql->ExecuteNoneQuery("UPDATE `cmsxx_archives` SET `arcrank`='-1' WHERE (`id`='$arcID');"); 

$dsql->ExecuteNoneQuery("UPDATE `cmsxx_arctiny` SET `arcrank`='-1' WHERE (`id`='$arcID');"); 


然后,上传New.php到你的网站根目录,到Dede后台设置系统基本设置中,将性能选项卡中的arclist标签调用缓存时间设置为一个合适的数,如3600表示一个小时刷新一次缓存。 

最后,在模板文件顶部调用一段代码即可: 

“ <script type=”text/javascript” src=”{dede:global.cfg_cmsurl/}/new.php”></script> ”。 

支持的参数: 

no=每次随机更新的数量,为空时默认为5; 

typeid=栏目ID,为空则是全站数据 

order=排序方式,支持Desc:倒序,Asc:顺序,Rand:随机,默认为随机查询。 

如:

“ <script type=”text/javascript” src=”{dede:global.cfg_cmsurl/}/new.php?no=100&typeid=2&order=desc”></script> ” 

排序为Desc的时候,是按先发布的文章先审核的方式进行发布的,Asc反之,Rand为随机。 

四,这是我们在数据处理方面做的一个尝试,也许这种新的模式会是一次突破。祝大家使用愉快。有Bug或者建议请回复于后。 

点此下载文件:

dedecms_v.rar



[分享:织梦dede定时更新首页生成HTML的方法]

[织梦后台更新提示:DedeTag Engine Create File False 出错解决办法]

[分享:织梦dede定时更新首页生成HTML的方法]

[关于后台更新广告而前台没有改变的解决方法]

[dede首页调用随机文章定时自动更新]

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

织梦DEDECMS 栏目文章文章命名规则修改, 每次添加栏目的时候 都要改文章命名规则,十分麻烦, 修改下面这个地方就可以一改永亦,织梦模板网为您解答 找到\include\common.inc.php 搜索 $cfg_df_namerule 把: $cfg_df_namerule = {typedir}/{Y}/{M}{D}/{aid
当我们通过{dede:arclist keyword=关键词}来调用文章列表时,你会发现只在其中一个栏目里生效,在其他栏目,仍然显示上一次的关键词。 原因是由于arclist的缓存导致的。 只需修改/include/taglib/arclist.lib.php文件,大概在384行: $taghash = md5(seriali
我们在使用织梦dedecms数据库内容替换时候,经常遇到 安全码 显示的无法识别或者不清晰,这个安全码的位置是在核心 - 批量维护 - 数据库内容替换,如果识别不了,这个页面还没有改变验证码的地方,只能重新刷新页面,如果我们不想要这个安全码的话,要怎么操
今天一个客户在安装织梦dedecms时候,安装完成后登录后台就出现Safe Alert Request Error step 2,常用dedecms的朋友都知道,这是织梦的安全机制,在程序觉得有sql注入等攻击时候,会有这种提示。 1、起初我以为是文件没传全,让这个朋友重新传了文件上去安
很多人在修改织梦会员中心模板的时候 会遇到 明明修改了,为什么还是原来样式?确认文件没有修改错误的情况下,可能是缓存问题,你 只要把 /data/tplcache/ 里面的文件全部删除,重新访问即可。
dede织梦搜索伪静态,伪静态设置成功后,访问URL地址效果如下: 搜索页 http://www.baidu.com/search/织梦.html 搜索分页 http://www.baidu.com/search/织梦-2.html 本教程也适用于手机端。 开启伪静态: 后台-系统参数-核心设置-开启伪静态 后台-系统参数-