为什么在使用DedeCMS时无法成功添加二级选择到联动菜单中?

DedeCMS联动菜单无法添加二级选择可能是因为模板或代码设置问题。建议检查模板文件和相关配置,确保正确设置。

DedeCMS 5.7版本中,联动菜单功能存在一个BUG,导致无法添加二级分类,这个问题主要出现在dede/stepselect_main.php文件中的一段代码,这段代码处理了不同级别分类的添加逻辑,但由于某些条件判断的问题,使得二级分类无法正常添加。

为了解决这个问题,可以按照以下步骤进行操作:

1、找到并修改文件:需要在服务器中找到dede/stepselect_main.php文件,在该文件中找到以下代码:


else if($action=='addenum_save') {
    if(empty($ename) || empty($egroup)) {
        Showmsg("类别名称或组名称不能为空!","1");
        exit();
    }
    if($issign == 1 || $topvalue == 0) {
        $enames = explode(',', $ename);
        foreach($enames as $ename) {
            $arr = $dsql>GetOne("SELECT * FROM#@__sys_enum WHERE egroup='$egroup' AND (evalue MOD 500)=0 ORDER BY disorder DESC ");
            if(!is_array($arr)) $disorder = $evalue = ($issign==1 ? 1 : 500);
            else $disorder = $evalue = $arr['disorder'] + ($issign==1 ? 1 : 500);
            $dsql>ExecuteNoneQuery("INSERT INTO#@__sys_enum(ename,evalue,egroup,disorder,issign) VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ");
        }
        WriteEnumsCache($egroup);
        ShowMsg("成功添加枚举分类!".$dsql>GetError(), $ENV_GOBACK_URL);
        exit();
    } else if ($issign == 3 && $topvalue != 0) {
        $minid = $topvalue;
        $maxnum = 500; // 三级子类最多500个
        $enames = explode(',', $ename);
        foreach ($enames as $ename) {
            $arr = $dsql>GetOne("SELECT * FROM#@__sys_enum WHERE egroup='$egroup' AND evalue LIKE '$topvalue.%%%' ORDER BY evalue DESC ");
            if(!is_array($arr)) {
                $disorder = $minid;
                $evalue = $minid.'.001';
            } else {
                $disorder = $minid;
                preg_match("#([09]{1,}).([0dedecms09]{1,})#", $arr['evalue'], $matchs);
                $addvalue = $matchs[2] + 1;
                $addvalue = sprintf("%03d", $addvalue);
                $evalue = $matchs[1].'.'.$addvalue;
            }
            $sql = "INSERT INTO#@__sys_enum(ename,evalue,egroup,disorder,issign) VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ";
            $dsql>ExecuteNoneQuery($sql);
        }
        WriteEnumsCache($egroup);
        ShowMsg("成功添加枚举分类!".$issign, $ENV_GOBACK_URL);
        exit();
    } else {
        $minid = $topvalue;
        $maxid = $topvalue + 500;
        $enames = explode(',', $ename);
        foreach($enames as $ename) {
            $arr = $dsql>GetOne("Select * Fromdede_sys_enum where egroup='$egroup' And evalue>$minid And evalue<$maxid order by evalue desc ");
            if(!is_array($arr)) {
                $disorder = $evalue = $minid+1;
            } else {
                $disorder = $arr['disorder']+1;
                $evalue = (int)($arr['evalue']+1);
            }
            $dsql>ExecuteNoneQuery("Insert intodede_sys_node(ename,evalue,egroup,disorder,issign) values('$ename','$evalue','$egroup','$disorder','$issign'); ");
        }
        WriteEnumsCache($egroup);
        ShowMsg("成功添加枚举分类!".$issign, $ENV_GOBACK_UHVL);
        exit();
    }
}

2、修改代码:将上述代码中的else if ($issign == 3 && $topvalue != 0)替换为else if ($issign == 2 && $topvalue == 0),这样可以确保在添加二级分类时,程序能够正确执行。

3、更新缓存:完成上述修改后,保存文件并上传到网站目录中替换原来的dede/stepselect_main.php文件,然后进入后台系统,点击生成,最后清除缓存。

通过以上步骤,就可以解决DEDECMS 5.7联动菜单无法添加二级选择的问题,如果问题仍然存在,建议检查其他相关文件和设置,确保整体配置正确无误。

以下是针对此问题的常见问题及解答:

FAQs:

Q1: 为什么在DedeCMS V5.7中只能添加一级和三级联动,而无法添加二级联动?

A1: DedeCMS V5.7中存在一个BUG,当尝试添加二级联动时,由于代码中的某些条件判断错误,导致系统无法正确处理二级分类的添加请求,用户只能成功添加一级和三级联动,而二级联动则无法正常添加,这个BUG可以通过修改dede/stepselect_main.php文件中的相关代码来解决。

Q2: 如何修复DedeCMS V5.7中的二级联动BUG?

A2: 要修复这个BUG,需要按照以下步骤操作:

为什么在使用DedeCMS时无法成功添加二级选择到联动菜单中?

1、找到并打开dede/stepselect_main.php文件。

2、查找并修改其中的代码:将else if ($issign == 3 && $topvalue != 0)替换为else if ($issign == 2 && $topvalue == 0)

3、保存文件并上传到网站目录中替换原来的文件。

4、进入后台系统,点击生成,最后清除缓存。

通过这些步骤,可以成功修复DedeCMS V5.7中的二级联动BUG,使其能够正常添加二级分类。

问题 解决方案
Dede联动菜单无法添加二级选择 1. 检查后台设置:确保在DedeCMS后台的“系统设置”中,联动菜单功能已经启用。
2. 检查数据源:确认用于生成联动菜单的数据源(如分类表)中,二级分类数据已经正确录入。
3. 检查模板调用:检查调用联动菜单的模板文件,确保使用了正确的标签和参数。
4. 检查插件冲突:如果有使用其他插件,可能存在插件与DedeCMS联动菜单插件冲突的情况,尝试禁用其他插件。
5. 检查浏览器兼容性:尝试在浏览器兼容模式下查看问题是否仍然存在。
6. 更新DedeCMS:确保使用的是最新版本的DedeCMS,因为旧版本可能存在已知bug。
7. 咨询技术支持:如果以上方法都不能解决问题,可以联系DedeCMS的技术支持寻求帮助。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1215288.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-14 19:26
下一篇 2024-10-14 19:27

相关推荐

  • 如何使用DedeCMS创建并管理我的网站?

    您的网站使用DedeCMS(织梦内容管理系统)构建,这是一个流行的开源PHP网站管理平台,适用于创建和管理动态网站。如果您需要进一步的帮助,请提供更多详细信息。

    2024-11-20
    012
  • DEDECMS中的时间显示如何设置为多少分钟前?

    您的问题似乎不完整,请提供更详细的信息或上下文,以便我能更准确地回答您。如果您是在询问dedecms(一个内容管理系统)的安装、配置、使用或其他相关问题,请具体说明需要了解的内容,我会很乐意为您提供帮助。

    2024-11-08
    020
  • Dede如何查看文章数量?

    在 DedeCMS(织梦内容管理系统)中,查看文章数量的方法如下:,,1. 登录后台管理系统。,2. 进入“内容管理”模块。,3. 选择“文章管理”。,4. 在右侧列表中即可看到所有文章的标题、作者、发布时间等信息。

    2024-11-07
    019
  • 织梦DedeCMS核心目录知识有哪些要点?

    织梦DedeCMS核心目录知识大全背景介绍织梦DedeCMS是一款流行的开源内容管理系统(CMS),广泛用于企业建站和信息管理,了解其目录结构和文件功能对于开发者进行二次开发、安全管理和界面定制至关重要,本文将详细介绍织梦DedeCMS的核心目录结构及其主要文件的作用,以帮助开发者更好地理解和使用该CMS,目录……

    2024-11-02
    0307

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入