在使用Dedecms的过程中,有时会遇到未审核文档出现在列表页面或动态浏览中的问题。为了解决这一问题,可以通过修改相关文件代码来实现更精准的控制。以下是两种常见的解决方法,供您参考。

解决办法一:

这种方法有朋友表示有效,但在我使用的Dedecms 5.6版本中并未起作用。具体操作如下:

修改taglib目录下的arclist.lib.php文件,找到大约196行左右的位置,将其修改为以下内容:


//—————- 
//调用副栏目
//—————-
if($CrossID=='')
    $orwheres[] = '( typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).'))';
else
    $orwheres[] = '( typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.'))';

接着,找到大约226行左右的位置,将代码修改为:


$orwheres[] = ' arc.arcrank >-1 ';

这样,在生成列表页面时,就不会显示未审核的文档了。


解决办法二:

另一种方法是通过禁止动态显示未审核文档来解决问题。我们可以在/plus/view.php文件中添加判断条件来实现这一目标。

编辑并打开/plus/view.php文件(注:此文件用于文档的动态浏览),找到如下代码:


//检查阅读权限  
$needMoney = $arc->Fields['money'];  
$needRank = $arc->Fields['arcrank'];

在其下方添加以下代码:


$mid = $arc->Fields['mid'];  
if(($cfg_ml->M_Rank < 1 || $mid <> $cfg_ml->M_ID) && $needRank == -1)
{  
    showMsg("未审核文档,暂时不能查看",-1);  
    exit();  
}

保存并关闭文件后,系统将不再允许用户访问未审核的文档。

以上两种方法都可以有效避免未审核文档出现在网站前端,您可以根据实际情况选择适合自己的解决方案。希望这些信息对您有所帮助!

注意:在进行任何代码修改之前,请务必备份相关文件,以防止意外情况发生。