在dedecms后台发表文章显示外部连接栏目

问题描述:客户的网站,有个顶级栏目,下面包含了几个子栏目,这个顶级栏目不想发布什么内容,点击后进入他的某个子栏目就可以了,这时候把这个顶级栏目设置为“外部连接”就可以了

但是设置顶级栏目为外部连接后,会产生一些问题,首先在前台导航菜单调用栏目的时候,会调用不出来,这个可以按照(http://www.cnblogs.com/shanmao/p/3510411.html)这篇文章来解决。

还会产生一个问题,这里要给出解决方法。就是在发表文章的时候,栏目下拉列表里不显示该栏目及其子栏目,那么当然没办法往它的子栏目里添加文章了。

解决方法:

修改/dede/inc/inc_catalog_options.php这个文件里的GetOptionList这个函数

把第43行的

$query = "Select id,typename,ispart,channeltype From `#@__arctype` where id in($admin_catalog) And reid=0 And ispart<>2 ";

改为

$query = "Select id,typename,ispart,channeltype From `#@__arctype` where id in($admin_catalog) And reid=0 ";

第48行的

$query = "Select id,typename,ispart,channeltype From `#@__arctype` where ispart<>2 And reid=0 order by sortrank asc ";

改为

$query = "Select id,typename,ispart,channeltype From `#@__arctype` where  reid=0 order by sortrank asc ";

第61行的

else if($row->ispart==2) $OptionArrayList .= '';

改为

else if($row->ispart==2) $OptionArrayList .= "<option value='".$row->id."' class='option1'>".$row->typename."(外部连接)</option> ";

这样就可以了

原理:

原来sql语句把ispart=2(也就是外部连接)的栏目都给条件过滤掉了,我们去掉这个过滤就可以了。

原文地址:https://www.cnblogs.com/shanmao/p/3510778.html