dedecms文章自动定时更新

http://www.fzcms.com - 09-09

 dedecms的文章列表,我们希望其能够自动更新,这样会给用户更多更新鲜的文章体验。 如何实现dedecms文章定时更新呢?


    首先第一步调用随机文章:


    dedecms给出了随机文章调用的参数如下:
    {dede:arclist sort=’rand’ titlelen=48 row=16}
    <li><a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a></li>
    {/dede:arclist}
    这段列表代码可以调用出随机文章,并且在每次刷新动态页面的时候都会变化,但是由于织梦是首页生成静态html的,所以如果不去手动生成还是不会变化,这样就用到了下面的方法。


    第二步设置定时自动更新文件:
    复制下面代码,粘贴到一个新文件中,命名为:autoindex.php,上传到plus文件夹中,看清楚一点是plus文件夹中,切勿错了位置:
    <?php
    function sp_input( $text )
    {
    $text = trim( $text );
    $text = htmlspecialchars( $text );
    if (!get_magic_quotes_gpc())
    return addslashes( $text );
    else
    return $text;
    }
    $autotime = 3600;//自动更新时间,单位为秒,这里设为一小时,可以自行更改。
    $fpath = "../data/last_time.inc";//记录更新时间文件,如果不能达到目的,请检查是否有读取权限。
    include( $fpath );
    if( empty($last_time))
    $last_time = 0;
    if( sp_input($_GET['renew'])=="now")
    $last_time = 0;
    if((time()-$last_time)>=$autotime )
    {
    define('DEDEADMIN', ereg_replace("[/\\]{1,}",'/',dirname(__FILE__) ) );
    require_once(DEDEADMIN."/../include/common.inc.php");
    require_once(DEDEINC."/arc.partview.class.php");
    /*
    $row = $dsql->GetOne("Select * From dede_homepageset");
    $dsql->Close();
    $templet=$row['templet'];
    $position=$row['position'];
    */
    $templet = “tnbjh/index.htm”;//这里是首页模板位置,当前是dede默认首面位置。
    $position = "../index.html";
    $homeFile = dirname(__FILE__)."/".$position;
    $homeFile = str_replace("\\", "/", $homeFile );
    $homeFile = str_replace( "//", "/", $homeFile );
    $pv = new PartView();
    $pv ->SetTemplet( $cfg_basedir.$cfg_templets_dir."/".$templet );
    $pv -> SaveToHtml( $homeFile );
    $pv -> Close();
    $file = fopen( $fpath, "w");
    fwrite( $file, "<?php\n");
    fwrite( $file,"\$last_time=".time().";\n");
    fwrite( $file, '?>' );
    fclose( $file );
    }
    ?>


    然后我们需要在首页的模版代码head标签中加入一段代码:
    <script src="/plus/autoindex.php" language="javascript"></script>
    最后点击后台生成,更新首页。这样如何实现dedecms调用随机文章定时更新的功能就已经基本完成,接下来要做的就是查看效果!