zoukankan      html  css  js  c++  java
  • 帝国cms定时自动执行刷新任务插件DoTimeRepage

    帝国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源码如下:

    <?php
    require("../../class/connect.php");
    require("../../class/db_sql.php");
    require("../../class/functions.php");
    require "../".LoadLang("pub/fun.php");
    require("../../class/delpath.php");
    require("../../class/copypath.php");
    require("../../class/t_functions.php");
    require("../../data/dbcache/class.php");
    require("../../data/dbcache/MemberLevel.php");
    $link=db_connect();
    $empire=new mysqlquery();
    $editor=1;
    
    @set_time_limit(0);
    
    //加载
    $incftp=0;
    if($public_r['phpmode'])
    {
        include("../../class/ftp.php");
        $incftp=1;
    }
    //防采集
    if($public_r['opennotcj'])
    {
        @include("../../data/dbcache/notcj.php");
    }
    
    //定时刷新任务
    function user_DoTimeRepage(){
        global $empire,$dbtbpre;
        user_DoAutoUpAndDownInfo();//自动上/下线
        $todaytime=time();
        $b=0;
        $sql=$empire->query("select doing,classid,doid from {$dbtbpre}enewsdo where isopen=1 and lasttime+dotime*60<$todaytime");
        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],$ret_r[0],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("select listid,pagetitle,filepath,filetype,totalsql,listsql,maxnum,lencord,listtempid,pagekeywords,pagedescription from {$dbtbpre}enewsuserlist where listid='".$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("select id,path,pagetext,title,pagetitle,pagekeywords,pagedescription,tempid from {$dbtbpre}enewspage where id='".$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("select jsid,jsname,jssql,jstempid,jsfilename from {$dbtbpre}enewsuserjs where jsid='".$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],$ret_r,5);
                }
            }
            else//生成首页
            {
                $indextemp=GetIndextemp();
                NewsBq($classid,$indextemp,1,0);
            }
            $empire->query("update {$dbtbpre}enewsdo set lasttime=$todaytime where doid='$r[doid]'");
        }
        if($b)
        {
            //echo "最后执行时间:".date("Y-m-d H:i:s",$todaytime)."<br><br>";
        }
    }
    
    //定时上线/下线
    function user_DoAutoUpAndDownInfo(){
        global $empire,$dbtbpre,$class_r,$emod_r,$public_r;
        $todaytime=time();
        $sql=$empire->query("select id,classid,infouptime,infodowntime from {$dbtbpre}enewsinfovote where infouptime>0 or infodowntime>0");
        while($r=$empire->fetch($sql))
        {
            if(!$class_r[$r[classid]]['tbname'])
            {
                continue;
            }
            //上线
            if($r['infouptime']&&$r['infouptime']<=$todaytime)
            {
                $infor=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_check where id='$r[id]' limit 1");
                if(!$infor['id'])
                {
                    continue;
                }
                //签发
                if($infor['isqf'])
                {
                    $qfr=$empire->fetch1("select checktno from {$dbtbpre}enewswfinfo where id='$r[id]' and classid='$r[classid]' limit 1");
                    if($qfr['checktno']!='100')
                    {
                        continue;
                    }
                }
                $empire->query("update {$dbtbpre}ecms_".$class_r[$r[classid]][tbname]."_index set checked=1 where id='$r[id]' limit 1");
                $pubid=ReturnInfoPubid($r['classid'],$r['id']);
                $empire->query("update {$dbtbpre}enewsinfovote set infouptime=0 where pubid='$pubid' limit 1");
                //互转
                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']<=$todaytime)
            {
                $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]." where id='".$r[id]."' limit 1");
                if(!$infor['id'])
                {
                    continue;
                }
                //签发
                if($infor['isqf'])
                {
                    $qfr=$empire->fetch1("select checktno from {$dbtbpre}enewswfinfo where id='$r[id]' and classid='$r[classid]' limit 1");
                    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]." where id='$r[id]' limit 1");
                        $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]."_index set checked=0,havehtml=0 where id='$r[id]' limit 1");
                $pubid=ReturnInfoPubid($r['classid'],$r['id']);
                $empire->query("update {$dbtbpre}enewsinfovote set infodowntime=0 where pubid='$pubid' limit 1");
                //互转
                MoveCheckInfoData($class_r[$r[classid]][tbname],1,$infor['stb'],"id='$r[id]'");
                AddClassInfos($r['classid'],'','-1');
                //刷新列表
                ReListHtml($r[classid],1);
            }
        }
    }
    
    user_DoTimeRepage();//自动刷新页面
    db_close();
    $empire=null;
    ?>
  • 相关阅读:
    php中的闭包和匿名函数
    php魔术常量
    SQL查询:存在一个表而不在另一个表中的数据
    php发送http请求的几种方式
    php高级工程师面试题
    php中include、require、include_once、require_once的区别
    gitignore规则基础
    Google地图数据算法
    【营销】包子和星座
    【GPS】 数据围栏
  • 原文地址:https://www.cnblogs.com/surplus/p/13806169.html
Copyright © 2011-2022 走看看