在你的操作系统,如果是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

相关推荐