帝国CMS二次开发不使用后台定时刷新脚本
帝国CMS二次开发不开后台定时刷新脚本,可以通过前端JavaScript实现。首先,在HTML页面中引入一个外部JavaScript文件,然后在该文件中编写一个函数,用于定时刷新页面内容。接着,使用`setInterval()`函数设置刷新间隔,例如每5秒刷新一次。最后,将该函数绑定到页面加载完成后执行。这样,即使关闭后台定时刷新脚本,页面仍然会按照设定的时间间隔自动刷新。需要注意的是,这种方法可能会对服务器造成一定的压力,因此建议根据实际情况调整刷新间隔。
在你的操作系统,如果是linux的话,添加以下计划任务。
* * * * * /usr/bin/php /webrootpath/e/tasks/backend_cronjob.php。
把代码传到 /e/tasks/ 下。
这个脚本将替代后台的定时刷新,你不用在开着后台了,它帮你定时刷新。
适用场景:全战静态化,需要定时刷新。(比如首页有点计量,排行榜这样的数据)同时适用于,需要在多台服务器上生成内容的情况。
<?phpif(substr(php_sapi_name(),0,3)!=='cli'){die("forbidden");}define('DOC_ROOT',strtr(__FILE__,'','/'));define('ROOT_PATH',dirname(dirname(dirname(DOC_ROOT))));require(ROOT_PATH.'/e/class/connect.php');require(ROOT_PATH.'/e/class/functions.php');require(ROOT_PATH.'/e/data/dbcache/class.php');//引入栏目缓存文件require(ROOT_PATH.'/e/class/db_sql.php');require(ROOT_PATH.'/e/class/t_functions.php');require(ROOT_PATH.'/e/data/dbcache/class.php');require(ROOT_PATH.'/e/data/dbcache/MemberLevel.php');$link=db_connect();$empire=newmysqlquery();//定时刷新任务functionDoTimeRepage(){global$empire,$dbtbpre;DoAutoUpAndDownInfo();//自动上/下线$dotime=time();$b=0;$sql=$empire->query("selectdoing,classid,doidfrom{$dbtbpre}enewsdowhereisopen=1andlasttime+dotime*60<$dotime");while($r=$empire->fetch($sql)){$b=1;if($r['doing']==1)//生成栏目{$cr=explode(',',$r['classid']);$count=count($cr)-1;for($i=1;$i<$count;$i++){if(empty($cr[$i])){continue;}$cr[$i]=(int)$cr[$i];ReListHtml($cr[$i],1);}}elseif($r['doing']==2)//生成专题{$cr=explode(',',$r['classid']);$count=count($cr)-1;for($i=1;$i<$count;$i++){if(empty($cr[$i])){continue;}$cr[$i]=(int)$cr[$i];ListHtmlIndex($cr[$i],null,0);}}elseif($r['doing']==3)//生成自定义列表{$cr=explode(',',$r['classid']);$count=count($cr)-1;for($i=1;$i<$count;$i++){if(empty($cr[$i])){continue;}$cr[$i]=(int)$cr[$i];$ur=$empire->fetch1("selectlistid,pagetitle,filepath,filetype,totalsql,listsql,maxnum,lencord,listtempid,pagekeywords,pagedescriptionfrom{$dbtbpre}enewsuserlistwherelistid='".$cr[$i]."'");ReUserlist($ur,"");}}elseif($r['doing']==4)//生成自定义页面{$cr=explode(',',$r['classid']);$count=count($cr)-1;for($i=1;$i<$count;$i++){if(empty($cr[$i])){continue;}$cr[$i]=(int)$cr[$i];$ur=$empire->fetch1("selectid,path,pagetext,title,pagetitle,pagekeywords,pagedescription,tempidfrom{$dbtbpre}enewspagewhereid='".$cr[$i]."'");ReUserpage($ur['id'],$ur[pagetext],$ur[path],$ur[title],$ur[pagetitle],$ur[pagekeywords],$ur[pagedescription],$ur[tempid]);}}elseif($r['doing']==5)//生成自定义JS{$cr=explode(',',$r['classid']);$count=count($cr)-1;for($i=1;$i<$count;$i++){if(empty($cr[$i])){continue;}$cr[$i]=(int)$cr[$i];$ur=$empire->fetch1("selectjsid,jsname,jssql,jstempid,jsfilenamefrom{$dbtbpre}enewsuserjswherejsid='".$cr[$i]."'");ReUserjs($ur,'');}}elseif($r['doing']==6)//生成标题分类页面{$cr=explode(',',$r['classid']);$count=count($cr)-1;for($i=1;$i<$count;$i++){if(empty($cr[$i])){continue;}$cr[$i]=(int)$cr[$i];ListHtml($cr[$i],null,5);}}else//生成首页{$indextemp=GetIndextemp();NewsBq(null,$indextemp,1,0);}$empire->query("update{$dbtbpre}enewsdosetlasttime=$dotimewheredoid='$r[doid]'");}if($b){echo"最后执行时间:".date("Y-m-dH:i:s",$dotime);}}//定时上线/下线functionDoAutoUpAndDownInfo(){global$empire,$dbtbpre,$class_r,$emod_r,$public_r;$dotime=time();$sql=$empire->query("selectid,classid,infouptime,infodowntimefrom{$dbtbpre}enewsinfovotewhereinfouptime>0orinfodowntime>0");while($r=$empire->fetch($sql)){if(!$class_r[$r[classid]]['tbname']){continue;}//上线if($r['infouptime']&&$r['infouptime']<=$dotime){$infor=$empire->fetch1("select*from{$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_checkwhereid='$r[id]'limit1");if(!$infor['id']){continue;}//签发if($infor['isqf']){$qfr=$empire->fetch1("selectchecktnofrom{$dbtbpre}enewswfinfowhereid='$r[id]'andclassid='$r[classid]'limit1");if($qfr['checktno']!='100'){continue;}}$empire->query("update{$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_indexsetchecked=1whereid='$r[id]'limit1");$pubid=ReturnInfoPubid($r['classid'],$r['id']);$empire->query("update{$dbtbpre}enewsinfovotesetinfouptime=0wherepubid='$pubid'limit1");//互转MoveCheckInfoData($class_r[$r[classid]][tbname],0,$infor['stb'],"id='$r[id]'");AddClassInfos($r['classid'],'','+1');//刷新信息GetHtml($infor['classid'],$infor['id'],$infor,1);//刷新列表ReListHtml($r[classid],1);}//下线if($r['infodowntime']&&$r['infodowntime']<=$dotime){$mid=$class_r[$r[classid]][modid];$tbname=$class_r[$r[classid]][tbname];$pf=$emod_r[$mid]['pagef'];$stf=$emod_r[$mid]['savetxtf'];//主表$infor=$empire->fetch1("select*from{$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."whereid='".$r[id]."'limit1");if(!$infor['id']){continue;}//签发if($infor['isqf']){$qfr=$empire->fetch1("selectchecktnofrom{$dbtbpre}enewswfinfowhereid='$r[id]'andclassid='$r[classid]'limit1");if($qfr['checktno']!='100'){continue;}}//分页字段if($pf){if(strstr($emod_r[$mid]['tbdataf'],','.$pf.',')){$finfor=$empire->fetch1("select".$pf."from{$dbtbpre}ecms_".$tbname."_data_".$infor[stb]."whereid='$r[id]'limit1");$infor[$pf]=$finfor[$pf];}if($stf&&$stf==$pf)//存放文本{$infor[$pf]=GetTxtFieldText($infor[$pf]);}}DelNewsFile($infor[filename],$infor[newspath],$infor[classid],$infor[$pf],$infor[groupid]);$empire->query("update{$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_indexsetchecked=0,havehtml=0whereid='$r[id]'limit1");$pubid=ReturnInfoPubid($r['classid'],$r['id']);$empire->query("update{$dbtbpre}enewsinfovotesetinfodowntime=0wherepubid='$pubid'limit1");//互转MoveCheckInfoData($class_r[$r[classid]][tbname],1,$infor['stb'],"id='$r[id]'");AddClassInfos($r['classid'],'','-1');//刷新列表ReListHtml($r[classid],1);}}}DoTimeRepage();db_close();$empire=null;