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

如何在使用DedeCMS发布未审核文章时自动更新为当前时间?

在dedecms中,发布未审核文章时自动将时间改为当前最新时间,可以通过修改系统设置或使用插件实现。

在织梦CMS(DedeCMS)中,发布未审核文章时自动将时间改为当前最新时间的功能可以通过修改系统文件和模板文件来实现,以下是详细的步骤和方法:

方法一:修改系统文件

1、找到并编辑archives_do.php文件

打开DedeCMS的安装目录,找到dede文件夹。

在该文件夹中找到archives_do.php文件,并使用文本编辑器打开它。

在文件中找到大约第252行的位置,将以下代码:

     $maintable = ( trim($row['maintable'])=='' ? '#@__archives' : trim($row['maintable']) );
     $dsql>ExecuteNoneQuery("UPDATE#@__arctiny SET arcrank='0' WHERE id='$aid' ");
     if($row['issystem']==1)
     {
     $dsql>ExecuteNoneQuery("UPDATE".trim($row['addtable'])." SET arcrank='0' WHERE aid='$aid' ");
     }
     else
     {
     $dsql>ExecuteNoneQuery("UPDATE$maintable SET arcrank='0', dutyadmin='".$cuserLogin>getUserID()."' WHERE id='$aid' ");
     }
     $dsql>ExecuteNoneQuery("UPDATE#@__taglist SET arcrank='0' WHERE aid='$aid' ");
     $pageurl = MakeArt($aid,false);

替换为以下代码:

     $maintable = ( trim($row['maintable'])=='' ? '#@__archives' : trim($row['maintable']) );
     $newdate = time();
     $dsql>ExecuteNoneQuery("UPDATE#@__arctiny SET sortrank='$newdate',senddate='$newdate',arcrank='0' WHERE id='$aid' ");
     if($row['issystem']==1)
     {
     $dsql>ExecuteNoneQuery("UPDATE".trim($row['addtable'])." SET pubdate='$newdate',sortrank='$newdate',senddate='$newdate',arcrank='0' WHERE aid='$aid' ");
     }
     else
     {
     $dsql>ExecuteNoneQuery("UPDATE$maintable SET pubdate='$newdate',sortrank='$newdate',senddate='$newdate',arcrank='0', dutyadmin='".$cuserLogin>getUserID()."' WHERE id='$aid' ");
     }
     $dsql>ExecuteNoneQuery("UPDATE#@__taglist SET arcrank='0' WHERE aid='$aid' ");
     $pageurl = MakeArt($aid,false);

这样,在更新文章时,系统会自动将发布时间、排序时间和发送时间设置为当前时间。

2、修改arc.listview.class.php文件(可选):

打开include/arc.listview.class.php文件。

查找以下代码(会查找到两个,两个都要改):

     if(preg_match('/index/i', $listitem)) $plist .= $indexpage; if(preg_match('/pre/i', $listitem)) $plist .= $prepage; if(pr...

将其替换为:

     if(preg_match('/index/i', $listitem)) $plist .= $indexpage; if(preg_match('/pre/i', $listitem)) $plist .= $prepage; if(preg_match('/last/i', $listitem)) $plist .= $lastpage; if(preg_match('/next/i', $listitem)) $plist .= $nextpage;

这一步是为了确保列表页能够正确显示分页信息。

方法二:修改模板文件

1、找到并编辑article_edit.htm文件

打开dede/templets/article_edit.htm文件。

找到以下代码:

     $nowtime = GetDateTimeMk($arcRow["pubdate"]);
     echo "<input name="pubdate" value="$nowtime" type="text" id="pubdate" >";

并将其替换为:

     if($arcRow["arcrank"]!=1){
     $nowtime = GetDateTimeMk($arcRow["pubdate"]);
     echo "<input name="pubdate" value="$nowtime" type="text" id="pubdate" >";
     }else{
     $nowtime =date('Ymd H:i:s');
     echo "<input name="pubdate" value="$nowtime" type="text" id="pubdate" >";
     };

这样,在编辑未审核的文章时,发布时间框里将自动显示当前系统时间。

2、增加当前时间按钮(可选)

在上述代码后面增加一个按钮,用于点击后更新时间为当前时间,代码如下:

     <input TYPE="button" value="当前时间" OnClick="document.form1.pubdate.value='<?php echo $showtime=date("Ymd H:i:s");?>'"  />

这种方法提供了更多的灵活性,允许用户在需要时手动更新时间。

FAQs

问题1:如何在DedeCMS中设置文章发布后自动生成HTML?

答:在DedeCMS中,要设置文章发布后自动生成HTML,可以按照以下步骤操作:

1、进入DedeCMS后台管理界面。

2、在左侧菜单栏中,依次点击“系统” > “系统基本参数”。

3、在打开的页面中,切换到“性能选项”标签页。

4、在“发布文章后直接生成HTML”选项中,选择“是”。

5、保存设置即可,这样,在发布文章时,DedeCMS会自动生成对应的HTML文件。

问题2:如何批量将未审核稿件改为已审核状态?

答:要批量将未审核稿件改为已审核状态,可以通过执行SQL语句来实现,具体操作如下:

1、登录到数据库管理工具(如phpMyAdmin或命令行)。

2、选择DedeCMS使用的数据库。

3、执行以下SQL语句:

   UPDATE dede_archive SET arcrank='0';
   UPDATE dede_arctiny SET arcrank='0';

这两条语句分别更新了dede_archive表和dede_arctiny表中的arcrank字段为0,表示文章已审核,在执行这些操作之前,请确保已经备份好数据库,以防万一出现问题可以恢复数据。

0

随机文章