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

当织梦DedeCMS的二级栏目为空,同级栏目却依然不隐藏,该如何调整显示逻辑?

织梦DedeCMS当二级栏目为空时,不显示同级栏目的修改方法

1. 问题背景

在织梦DedeCMS中,当某个二级栏目为空时,默认情况下,该二级栏目下的同级栏目(即同一父级的一级栏目)也会显示出来,这可能不符合某些网站的设计需求,因此需要修改系统行为以实现当二级栏目为空时不显示同级栏目。

2. 修改步骤

步骤一:备份文件

在修改之前,请确保备份以下文件,以防万一修改出错可以恢复。

include/arcview.class.php模型视图类文件)

步骤二:打开文件

使用文本编辑器打开include/arcview.class.php 文件。

步骤三:查找关键代码

在文件中查找以下代码段:

// 检查是否有子栏目
if($arrchildid)
{
    $nbsp = $cfg_arcmid == 1 ? ' ' : ' ';
    $childlist = '<ul >';
    $childlist .= $nbsp . '<li><a href="' . $arrchildid[0] . '">' . $arrchildid[1] . '</a></li>';
    for($i=1;$i<count($arrchildid)1;$i++)
    {
        $childlist .= $nbsp . '<li><a href="' . $arrchildid[$i] . '">' . $arrchildid[$i+1] . '</a></li>';
    }
    $childlist .= '</ul>';
    $childlist .= '<div ></div>';
    $info = str_replace($row['litid'], $childlist, $info);
}

步骤四:修改代码

将上述代码中的if($arrchildid) 条件判断部分修改为以下内容:

// 检查是否有子栏目,且子栏目不为空
if($arrchildid && $arrchildid[2] == '0')
{
    $nbsp = $cfg_arcmid == 1 ? ' ' : '&nbsp;';
    $childlist = '<ul >';
    $childlist .= $nbsp . '<li><a href="' . $arrchildid[0] . '">' . $arrchildid[1] . '</a></li>';
    for($i=1;$i<count($arrchildid)1;$i++)
    {
        $childlist .= $nbsp . '<li><a href="' . $arrchildid[$i] . '">' . $arrchildid[$i+1] . '</a></li>';
    }
    $childlist .= '</ul>';
    $childlist .= '<div ></div>';
    $info = str_replace($row['litid'], $childlist, $info);
}

这里的$arrchildid[2] == '0' 判断是为了确保二级栏目下至少有一条数据。

步骤五:保存文件

修改完成后,保存include/arcview.class.php 文件。

3. 验证修改

访问网站,检查二级栏目为空时是否正确地不显示同级栏目。

4. 注意事项

确保备份文件在需要时可以恢复。

修改代码前请仔细阅读和理解,避免误操作。

如果修改后出现问题,请及时恢复备份文件。

通过以上步骤,您可以实现在织梦DedeCMS中当二级栏目为空时不显示同级栏目的功能。

0