帝国CMS的前台定时执行刷新任务插件,可替代需要开着后台才会执行刷新任务。

帝国cms官方插件下载地址:http://bbs.phome.net/showthread-31-196160-0.html

********************     安装插件     ********************

1、将“upload”目录下的文件上传至帝国CMS系统目录,即把DoTimeRepage目录,放到/e/extend/中,安装后路径是:/e/extend/DoTimeRepage/;

2、插件安装完毕。

********************     卸载插件     ********************

1、删除 /e/extend/DoTimeRepage/ 目录;

2、插件卸载完毕。

********************     插件使用     ********************

1、在经常被访问到的页面(比如:首页)最底部加上如下代码即可:(两种方式选其一)

(1)、JS调用方式:

<script src=”[!–news.url–]e/extend/DoTimeRepage/”></script>

(2)、框架调用方式:

<IFRAME frameBorder=”0″ width=”0″ height=”0″ marginWidth=”0″ marginHeight=”0″ id=”dorepage” name=”dorepage” scrolling=”no” src=”[!–news.url–]e/extend/DoTimeRepage/”></IFRAME>

2、生成相应页面。

(刷新任务增加:后台>“系统”>“计划任务”>“管理刷新任务”。信息定时上下线:增加信息时选项设置里可以设置定时发布。)

********************     插件目录说明     ********************

/e/extend/DoTimeRepage/         前台定时执行刷新任务插件目录

└index.php       执行刷新任务程序文件

注意事项:上传插件,在页面中调用插件,生成前台页面,这样当访客访问前台页面时,会触发页面中的插件代码,从而启动刷新计划任务。
例如:你设置了一个计划任务,5分钟后执行。那么访客在5分钟内访问页面,是不会触发计划任务的,必须是5分钟后,访问页面才会触发插件。这一点需要注意一下。

e/extend/DoTimeRepage/index.php源码如下:

  1. <?php
  2. require("../../class/connect.php");
  3. require("../../class/db_sql.php");
  4. require("../../class/functions.php");
  5. require "../".LoadLang("pub/fun.php");
  6. require("../../class/delpath.php");
  7. require("../../class/copypath.php");
  8. require("../../class/t_functions.php");
  9. require("../../data/dbcache/class.php");
  10. require("../../data/dbcache/MemberLevel.php");
  11. $link=db_connect();
  12. $empire=new mysqlquery();
  13. $editor=1;
  14. @set_time_limit(0);
  15. //加载
  16. $incftp=0;
  17. if($public_r[\'phpmode\'])
  18. {
  19. include("../../class/ftp.php");
  20. $incftp=1;
  21. }
  22. //防采集
  23. if($public_r[\'opennotcj\'])
  24. {
  25. @include("../../data/dbcache/notcj.php");
  26. }
  27. //定时刷新任务
  28. function user_DoTimeRepage(){
  29. global $empire,$dbtbpre;
  30. user_DoAutoUpAndDownInfo();//自动上/下线
  31. $todaytime=time();
  32. $b=0;
  33. $sql=$empire->query("select doing,classid,doid from {$dbtbpre}enewsdo where isopen=1 and lasttime+dotime*60<$todaytime");
  34. while($r=$empire->fetch($sql))
  35. {
  36. $b=1;
  37. if($r[doing]==1)//生成栏目
  38. {
  39. $cr=explode(\',\',$r[classid]);
  40. $count=count($cr)-1;
  41. for($i=1;$i<$count;$i++)
  42. {
  43. if(empty($cr[$i]))
  44. {
  45. continue;
  46. }
  47. $cr[$i]=(int)$cr[$i];
  48. ReListHtml($cr[$i],1);
  49. }
  50. }
  51. elseif($r[doing]==2)//生成专题
  52. {
  53. $cr=explode(\',\',$r[classid]);
  54. $count=count($cr)-1;
  55. for($i=1;$i<$count;$i++)
  56. {
  57. if(empty($cr[$i]))
  58. {
  59. continue;
  60. }
  61. $cr[$i]=(int)$cr[$i];
  62. ListHtmlIndex($cr[$i],$ret_r[0],0);
  63. }
  64. }
  65. elseif($r[doing]==3)//生成自定义列表
  66. {
  67. $cr=explode(\',\',$r[classid]);
  68. $count=count($cr)-1;
  69. for($i=1;$i<$count;$i++)
  70. {
  71. if(empty($cr[$i]))
  72. {
  73. continue;
  74. }
  75. $cr[$i]=(int)$cr[$i];
  76. $ur=$empire->fetch1("select listid,pagetitle,filepath,filetype,totalsql,listsql,maxnum,lencord,listtempid,pagekeywords,pagedescription from {$dbtbpre}enewsuserlist where listid=\'".$cr[$i]."\'");
  77. ReUserlist($ur,"../");
  78. }
  79. }
  80. elseif($r[doing]==4)//生成自定义页面
  81. {
  82. $cr=explode(\',\',$r[classid]);
  83. $count=count($cr)-1;
  84. for($i=1;$i<$count;$i++)
  85. {
  86. if(empty($cr[$i]))
  87. {
  88. continue;
  89. }
  90. $cr[$i]=(int)$cr[$i];
  91. $ur=$empire->fetch1("select id,path,pagetext,title,pagetitle,pagekeywords,pagedescription,tempid from {$dbtbpre}enewspage where id=\'".$cr[$i]."\'");
  92. ReUserpage($ur[id],$ur[pagetext],$ur[path],$ur[title],$ur[pagetitle],$ur[pagekeywords],$ur[pagedescription],$ur[tempid]);
  93. }
  94. }
  95. elseif($r[doing]==5)//生成自定义JS
  96. {
  97. $cr=explode(\',\',$r[classid]);
  98. $count=count($cr)-1;
  99. for($i=1;$i<$count;$i++)
  100. {
  101. if(empty($cr[$i]))
  102. {
  103. continue;
  104. }
  105. $cr[$i]=(int)$cr[$i];
  106. $ur=$empire->fetch1("select jsid,jsname,jssql,jstempid,jsfilename from {$dbtbpre}enewsuserjs where jsid=\'".$cr[$i]."\'");
  107. ReUserjs($ur,\'../\');
  108. }
  109. }
  110. elseif($r[doing]==6)//生成标题分类页面
  111. {
  112. $cr=explode(\',\',$r[classid]);
  113. $count=count($cr)-1;
  114. for($i=1;$i<$count;$i++)
  115. {
  116. if(empty($cr[$i]))
  117. {
  118. continue;
  119. }
  120. $cr[$i]=(int)$cr[$i];
  121. ListHtml($cr[$i],$ret_r,5);
  122. }
  123. }
  124. else//生成首页
  125. {
  126. $indextemp=GetIndextemp();
  127. NewsBq($classid,$indextemp,1,0);
  128. }
  129. $empire->query("update {$dbtbpre}enewsdo set lasttime=$todaytime where doid=\'$r[doid]\'");
  130. }
  131. if($b)
  132. {
  133. //echo "最后执行时间:".date("Y-m-d H:i:s",$todaytime)."<br><br>";
  134. }
  135. }
  136. //定时上线/下线
  137. function user_DoAutoUpAndDownInfo(){
  138. global $empire,$dbtbpre,$class_r,$emod_r,$public_r;
  139. $todaytime=time();
  140. $sql=$empire->query("select id,classid,infouptime,infodowntime from {$dbtbpre}enewsinfovote where infouptime>0 or infodowntime>0");
  141. while($r=$empire->fetch($sql))
  142. {
  143. if(!$class_r[$r[classid]][\'tbname\'])
  144. {
  145. continue;
  146. }
  147. //上线
  148. if($r[\'infouptime\']&&$r[\'infouptime\']<=$todaytime)
  149. {
  150. $infor=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_check where id=\'$r[id]\' limit 1");
  151. if(!$infor[\'id\'])
  152. {
  153. continue;
  154. }
  155. //签发
  156. if($infor[\'isqf\'])
  157. {
  158. $qfr=$empire->fetch1("select checktno from {$dbtbpre}enewswfinfo where id=\'$r[id]\' and classid=\'$r[classid]\' limit 1");
  159. if($qfr[\'checktno\']!=\'100\')
  160. {
  161. continue;
  162. }
  163. }
  164. $empire->query("update {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_index set checked=1 where id=\'$r[id]\' limit 1");
  165. $pubid=ReturnInfoPubid($r[\'classid\'],$r[\'id\']);
  166. $empire->query("update {$dbtbpre}enewsinfovote set infouptime=0 where pubid=\'$pubid\' limit 1");
  167. //互转
  168. MoveCheckInfoData($class_r[$r[classid]][tbname],0,$infor[\'stb\'],"id=\'$r[id]\'");
  169. AddClassInfos($r[\'classid\'],\'\',\'+1\');
  170. //刷新信息
  171. GetHtml($infor[\'classid\'],$infor[\'id\'],$infor,1);
  172. //刷新列表
  173. ReListHtml($r[classid],1);
  174. }
  175. //下线
  176. if($r[\'infodowntime\']&&$r[\'infodowntime\']<=$todaytime)
  177. {
  178. $mid=$class_r[$r[classid]][modid];
  179. $tbname=$class_r[$r[classid]][tbname];
  180. $pf=$emod_r[$mid][\'pagef\'];
  181. $stf=$emod_r[$mid][\'savetxtf\'];
  182. //主表
  183. $infor=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]." where id=\'".$r[id]."\' limit 1");
  184. if(!$infor[\'id\'])
  185. {
  186. continue;
  187. }
  188. //签发
  189. if($infor[\'isqf\'])
  190. {
  191. $qfr=$empire->fetch1("select checktno from {$dbtbpre}enewswfinfo where id=\'$r[id]\' and classid=\'$r[classid]\' limit 1");
  192. if($qfr[\'checktno\']!=\'100\')
  193. {
  194. continue;
  195. }
  196. }
  197. //分页字段
  198. if($pf)
  199. {
  200. if(strstr($emod_r[$mid][\'tbdataf\'],\',\'.$pf.\',\'))
  201. {
  202. $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tbname."_data_".$infor[stb]." where id=\'$r[id]\' limit 1");
  203. $infor[$pf]=$finfor[$pf];
  204. }
  205. if($stf&&$stf==$pf)//存放文本
  206. {
  207. $infor[$pf]=GetTxtFieldText($infor[$pf]);
  208. }
  209. }
  210. DelNewsFile($infor[filename],$infor[newspath],$infor[classid],$infor[$pf],$infor[groupid]);
  211. $empire->query("update {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_index set checked=0,havehtml=0 where id=\'$r[id]\' limit 1");
  212. $pubid=ReturnInfoPubid($r[\'classid\'],$r[\'id\']);
  213. $empire->query("update {$dbtbpre}enewsinfovote set infodowntime=0 where pubid=\'$pubid\' limit 1");
  214. //互转
  215. MoveCheckInfoData($class_r[$r[classid]][tbname],1,$infor[\'stb\'],"id=\'$r[id]\'");
  216. AddClassInfos($r[\'classid\'],\'\',\'-1\');
  217. //刷新列表
  218. ReListHtml($r[classid],1);
  219. }
  220. }
  221. }
  222. user_DoTimeRepage();//自动刷新页面
  223. db_close();
  224. $empire=null;
  225. ?>

 

版权声明:本文为surplus原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/surplus/p/13806169.html