当前位置:首页 > 行业动态 > 正文

如何在织梦CMS中实现每分钟自动审核一篇文章并更新首页?

织梦CMS通过定时任务和自动审核插件,每分钟 自动审核新文章并更新首页。

在织梦CMS中,每分钟审核一篇文章并生成首页,可以通过编写脚本文件和设置定时任务来实现,以下是详细的步骤和代码示例:

创建脚本文件

1、新建文件:在织梦CMS的/plus/目录下新建一个名为makeid.php的文件。

2、编写脚本内容

<?php
$lasttime = filemtime($_SERVER['DOCUMENT_ROOT'] . "/index.html");
$interval = 60; //更新时间秒为单位,60秒=1分钟
if((time()$lasttime)>$interval){
    require_once(dirname(__FILE__)."/../include/common.inc.php");
    $row = $dsql>GetOne("select id fromdede_archives where arcrank = 1 order by id limit 1"); //找到未审核的文章排序根据你的要求修改下
    $aid = $row['id'];
    if($aid != ''){
        //审核文章
        $newdate = time(); // 设置当前时间为审核发布时间
        $upquery = "Updatedede_archives set pubdate='$newdate', sortrank='$newdate', arcrank = 0 where id='$aid'";
        $rs = $dsql>ExecuteNoneQuery($upquery);
        $isremote = (empty($isremote)? 0 : $isremote);
        function MakeArt($aid, $mkindex=FALSE, $ismakesign=FALSE, $isremote=0){
            global $envs, $typeid;
            require_once(DEDEINC.'/arc.archives.class.php');
            if($ismakesign) $envs['makesign'] = 'yes';
            $arc = new Archives($aid);
            $reurl = $arc>MakeHtml($isremote);
            return $reurl;
        }
        $arcID=$aid;
        $artUrl = MakeArt($aid, true, true, $isremote);
        require_once(DEDEINC.'/arc.partview.class.php');
        $envs = $_sys_globals = array();
        $envs['aid'] = 0;
        $pv = new PartView();
        $row = $pv>dsql>GetOne('SELECT * FROMcn_homepageset');
        $templet = str_replace("{style}", $cfg_df_style, $row['templet']);
        $homeFile = dirname(__FILE__).'/'.$row['position'];
        $homeFile = str_replace("//", "/", str_replace("\", "/", $homeFile));
        $fp = fopen($homeFile, 'w') or die("无法更新网站主页到:$homeFile 位置");
        fclose($fp);
        $tpl = $cfg_basedir.$cfg_templets_dir.'/'.$templet;
        if(!file_exists($tpl)) {
            $tpl = $cfg_basedir.$cfg_templets_dir.'/default/index.htm';
            if(!file_exists($tpl)) exit("无法找到主页模板:$tpl ");
        }
        $GLOBALS['_arclistEnv'] = 'index';
        $pv>SetTemplet($tpl);
        $pv>SaveToHtml($homeFile);
        $pv>Close();
    } else {
        exit();
    }
} else {
    exit();
}
?>

3、添加引用:在首页模板的最后面加入以下JavaScript代码,以调用makeid.php脚本:

<script src="/plus/makeid.php" language="javascript"></script>

设置定时任务(可选)

为了确保脚本能够持续运行,可以设置一个定时任务(cron job),每分钟执行一次makeid.php脚本,具体的设置方法依赖于服务器的操作系统和配置。

FAQs

1、Q: 如果脚本没有按照预期工作怎么办?

A: 首先检查makeid.php文件中的代码是否有语法错误或逻辑问题,确保服务器的PHP环境配置正确,并且有权限访问数据库,检查首页模板是否正确引入了makeid.php脚本,如果问题仍未解决,可以在服务器上查看错误日志,或者使用调试工具逐步排查问题。

2、Q: 如何调整审核和生成首页的时间间隔?

A: 要调整时间间隔,只需修改makeid.php文件中的$interval变量的值,将$interval = 60;改为$interval = 300;,则表示每5分钟审核一篇文章并生成首页,注意,这里的单位是秒。

序号 设置项 说明 具体操作
1 定时任务设置 设置每分钟执行一次审核文章的任务 1. 进入织梦CMS后台,找到“系统设置”模块。 2. 选择“定时任务”选项。 3. 点击“添加新任务”。 4. 设置任务名称为“每分钟审核一篇文章”。 5. 选择任务类型为“执行程序”。 6. 输入执行程序的路径(如:/home/wwwroot/democms/admin/myscript.php)。 7. 设置执行周期为“每分钟”。 8. 点击“保存”按钮。
2 自定义函数编写 编写用于审核文章的函数 1. 在织梦CMS后台,找到“系统设置”模块。 2. 选择“自定义函数”选项。 3. 点击“添加新函数”。 4. 输入函数名称(如:check_article)。 5. 编写审核文章的代码,检查文章状态、更新文章状态等。 6. 点击“保存”按钮。
3 程序路径配置 将自定义函数添加到定时任务执行程序中 1. 在定时任务执行程序中,引入自定义函数文件(如:include ‘myscript.php’)。 2. 在定时任务执行程序中,调用自定义函数(如:check_article())。
4 首页生成规则设置 设置首页生成规则,使审核后的文章显示在首页 1. 进入织梦CMS后台,找到“系统设置”模块。 2. 选择“内容管理”选项。 3. 找到“首页生成规则”设置项。 4. 根据需要设置首页生成规则,显示最新审核通过的文章、按时间排序等。 5. 点击“保存”按钮。
5 首页缓存更新 设置首页缓存更新时间,确保首页实时显示审核后的文章 1. 进入织梦CMS后台,找到“系统设置”模块。 2. 选择“缓存设置”选项。 3. 设置首页缓存更新时间为“实时更新”。 4. 点击“保存”按钮。

通过以上步骤,可以实现每分钟审核一篇文章,并将审核后的文章显示在首页。

0