在使用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();
}
保存并关闭文件后,系统将不再允许用户访问未审核的文档。
以上两种方法都可以有效避免未审核文档出现在网站前端,您可以根据实际情况选择适合自己的解决方案。希望这些信息对您有所帮助!
注意:在进行任何代码修改之前,请务必备份相关文件,以防止意外情况发生。