在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>\r\n";
这样就可以了
原理:
原来sql语句把ispart=2(也就是外部连接)的栏目都给条件过滤掉了,我们去掉这个过滤就可以了。