热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决DedeCMS5.7后台联动不能添加二级栏目

今天为客户制作一个汽车类网站,在用dedecms5.7为客户添加一个产品的分类时,发现只可以添加一级联动和三级联动,二级联动无法添加了&#
今天为客户制作一个汽车类网站,在用dedecms5.7为客户添加一个产品的分类时,发现只可以添加一级联动和三级联动,二级联动无法添加了,仔细查看源码后发现这又是一个5.7的BUG,解决此问题,只须修改dede/stepselect_main.php的相关内容就可以了。


首先在空间里找到dede/stepselect_main.php  这个文件,然后找到其中的这段代码:


  1. else if($action=='addenum_save')  
  2. {  
  3.   if(emptyempty($ename) || emptyempty($egroup))   
  4.   {  
  5.          Showmsg("类别名称或组名称不能为空!","-1");  
  6.          exit();  
  7.     }  
  8.     if($issign == 1 || $topvalue == 0)  
  9.     {  
  10.         $enames = explode(','$ename);  
  11.         foreach($enames as $ename)  
  12.         {  
  13.             $arr = $dsql->GetOne("SELECT * FROM `#@__sys_enum` WHERE egroup='$egroup' AND (evalue MOD 500)=0 ORDER BY disorder DESC ");  
  14.             if(!is_array($arr)) $disorder = $evalue = ($issign==1 ? 1 : 500);  
  15.             else $disorder = $evalue = $arr['disorder'] + ($issign==1 ? 1 : 500);  
  16.                   
  17.             $dsql->ExecuteNoneQuery("INSERT INTO `#@__sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)   
  18.                                     VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ");   
  19.         }  
  20.         WriteEnumsCache($egroup);                                                            
  21.         ShowMsg("成功添加枚举分类!".$dsql->GetError(), $ENV_GOBACK_URL);  
  22.         exit();  
  23.     } else if ($issign == 3 && $topvalue != 0)  
  24.     {  
  25.         $minid = $topvalue;  
  26.         $maxnum = 500; // 三级子类最多500个  
  27.         $enames = explode(','$ename);  
  28.         foreach ($enames as $ename)  
  29.         {  
  30.             $arr = $dsql->GetOne("SELECT * FROM `#@__sys_enum` WHERE egroup='$egroup' AND evalue LIKE '$topvalue.%%%' ORDER BY evalue DESC ");  
  31.             if(!is_array($arr))  
  32.             {  
  33.                 $disorder = $minid;  
  34.                 $evalue = $minid.'.001';  
  35.             }  
  36.             else  
  37.             {  
  38.                 $disorder = $minid;  
  39.                 preg_match("#([0-9]{1,})\.([0-9]{1,})#"$arr['evalue'], $matchs);  
  40.                 $addvalue = $matchs[2] + 1;  
  41.                 $addvalue = sprintf("%03d"$addvalue);  
  42.                 $evalue = $matchs[1].'.'.$addvalue;  
  43.             }  
  44.             $sql = "INSERT INTO `#@__sys_enum`(`ename`,`evalue`,`egroup`,`disorder`,`issign`)   
  45.                                     VALUES('$ename','$evalue','$egroup','$disorder','$issign'); ";  
  46.             // echo $sql;exit;  
  47.             $dsql->ExecuteNoneQuery($sql);   
  48.         }  
  49.         // echo $minid;  
  50.         WriteEnumsCache($egroup);  
  51.         ShowMsg("成功添加枚举分类!".$issign$ENV_GOBACK_URL);  
  52.         exit();  
  53.     } else {  
  54.    $minid = $topvalue;  
  55.    $maxid = $topvalue + 500;  
  56.    $enames = explode(','$ename);  
  57.       foreach($enames as $ename)  
  58.       {  
  59.     $arr &#61; $dsql->GetOne("Select * From &#96;dede_sys_enum&#96; where egroup&#61;&#39;$egroup&#39; And evalue>$minid And evalue<$maxid order by evalue desc ");  
  60.     if(!is_array($arr))  
  61.     {  
  62.      $disorder &#61; $evalue &#61; $minid&#43;1;  
  63.     }  
  64.     else  
  65.     {  
  66.      $disorder &#61; $arr[&#39;disorder&#39;]&#43;1;  
  67.      $evalue &#61; (int)($arr[&#39;evalue&#39;]&#43;1);  
  68.     }  
  69.     $dsql->ExecuteNoneQuery("Insert into &#96;dede_sys_enum&#96;(&#96;ename&#96;,&#96;evalue&#96;,&#96;egroup&#96;,&#96;disorder&#96;,&#96;issign&#96;)  
  70.                                  values(&#39;$ename&#39;,&#39;$evalue&#39;,&#39;$egroup&#39;,&#39;$disorder&#39;,&#39;$issign&#39;); ");  
  71.        }  
  72.        WriteEnumsCache($egroup);  
  73.    ShowMsg("成功添加枚举分类&#xff01;".$issign$ENV_GOBACK_URL);  
  74.    exit();  
  75.  }  



然后保存&#xff0c;在系统后台更新系统缓存就可以了的。现在在后台的联动类别管理里面就可以增加二级选择了。

2.dede/templets/stepselect_main.htm

找到

if($topvalue % 500 !&#61; 0) $arr[&#39;issign&#39;] &#61; 2;

修改为

if($topvalue % 500 !&#61; 0) $arr[&#39;issign&#39;] &#61; 3;

 if($topvalue % 500 &#61;&#61; 0) $arr[&#39;issign&#39;] &#61; 2;

 以上这样修改后1,2,3 联动能添加&#xff0c;再4级就不行了。应为这里的标记只判断到3&#xff0c;织梦也最多能添加3级联动。所以足够用了。






推荐阅读
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文总结和分析了JDK核心源码(2)中lang包下的基础知识,包括常用的对象类型包和异常类型包。在对象类型包中,介绍了Object类、String类、StringBuilder类、StringBuffer类和基本元素的包装类。在异常类型包中,介绍了Throwable类、Error类型和Exception类型。这些基础知识对于理解和使用JDK核心源码具有重要意义。 ... [详细]
author-avatar
爱辰teg_911
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有