DeDeCMS的标签arclist无法调用文章的副栏目或多个副栏目的解决方法
由于DeDeCMS后台没有在栏目间复制文档的功能,只有移动文档的功能(类似于剪切),而建站时经常会需要让多个栏目列表页都调用这篇文档,DeDeCMS的副栏目功能恰恰是用于解决类似需求的,它既可以让一篇文档被主栏目调用,也能在副栏目调用,甚至能被多个副栏目同时调用。
副栏目的设置如下图:
一个文章归属于2个栏目,一个是文档主栏目,一个是文档副栏目,而最终的管理是在主栏目中,但是被放入到副栏目的文档同样是可以在副栏目的前台 列表页中展示,但问题是:我们不仅要实现文章在列表页中去展示,也需要在首页或者其他页面中展示,这样就需要使用arclist标签来进行调用。但是,你会发现,默认在arclist中是无法直接调用副栏目的文档出来的。
其原因就是因为arclist标签文件中相关的php代码函数不支持副栏目的调取,我们只能对程序文件的相关代码进行更改,实现让arclist支持副栏目的调用。
修改文件/include/taglib/arclist.lib.php
XML/HTML代码
- if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
- else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
修改为:
XML/HTML代码
- 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.",%')";
网上的很多方法都是只能让一个副栏目能调用文档的,而这套代码可以让多个副栏目都能调用文档。
OK,修改完之后请更新缓存,重新生成,就能看到效果了!
郑州SEO优化

2016/03/04 20:48
博主好像很久没有来了哈
分页: 1/1
1

