织梦副栏目突破数量限制方法 快速达到一篇文章多个栏目显示的效果

  • A+
所属分类:分享

网上有很多的方法,但是有些方法没有效果,而且有些代码还会出错,我个人测试好以后,找了两个版本的方法分享出来给有需要的朋友。

用过dede的朋友都知道,由于dede后台没有在栏目间复制文档的功能,只有移动文档的功能(类似于剪切),而我需要让多个栏目列表页都调用这篇文档,如果每个栏目都添加一遍,那真要累死了。而dede的副栏目解决了这个问题,它既可以让一篇文档被主栏目调用,也能在副栏目调用,甚至能被多个副栏目同时调用。

两个版本织梦修改方法:

5.6版本织梦修改方法

第1步:打开“dede/js/main.js”文件。

第2步:在main.js全文搜索“j==10”(代码大概位于628行),把数字10改成自己需要的数字如999。

第3步:数据库副栏目字段(typeid2)长度默认设置为90字节,如果超过90字节(一个字符占一个字节,包括里面的英文逗号),则将会出现只保存前90个字节的数据,更改你的数据库dede_archives表的typeid2字段长度即可,把字段数字90修改为你需要的长度数字。

 

织梦副栏目突破数量限制方法 快速达到一篇文章多个栏目显示的效果

 

5.7版本织梦修改方法:

打开/include/taglib/arclist.lib.php第295行左右(dedecms V5.7):

搜索下面的代码

if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';

将其替换成如下代码:

if($CrossID=='')
$orwheres[] = " (arc.typeid in (".GetSonIds($typeid).") or arc.typeid2 in (".GetSonIds($typeid).") or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,".$typeid.",%' )";
else
$orwheres[] = " (arc.typeid in (".GetSonIds($typeid).",".$CrossID.") or arc.typeid2 in (".GetSonIds($typeid).",".$CrossID.") or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,".$typeid.",%')";

不要用文本工具打开修改,最好用editplus修改。

在网上的很多方法都是只能让一个副栏目能调用文档的,我这个代码可以让多个副栏目都能调用文档,本人已亲自测试,绝对可用。

OK,修改完之后请更新缓存,重新生成,就能看到效果了!

  • 我的微信
  • 微信ID:87797151
  • weinxin
  • 我的微信公众号
  • 公众号ID:fandihui8
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: