在你的操作系统,如果是linux的话,增加以下计划使命。
* * * * * /usr/bin/php /webrootpath/e/tasks/backend_cronjob.php。
把代码传到 /e/tasks/ 下。
这个脚本将代替后台的守时改写,你不用在开着后台了,它帮你守时改写。
适用场景:全战静态化,需求守时改写。(比方主页有点计量,排行榜这样的数据)
一起适用于,需求在多台服务器上生成内容的状况。
<?php if(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;
声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系邮箱:123456@qq.com 我们将配合处理!
原文地址:帝国CMS二次开发不开后台定时刷新脚本发布于2022-06-14 07:43:30