dede 5.7后台移动栏目,下拉列表显示不全的问题

想移动子栏目到其他栏目下,点其后的“移动”,打开的页面里"你希望移动到那个栏目?“后的下拉列表里只列出了几项,而且里面没有我要移动的目标栏目。
 
解决方法:
 
找到dede的后台目录:默认”dede“,打开”catalog_do.php"文件,大约327行:
  1. $typeOptions = $tl->GetOptionArray(0,0,$channelid);
将其改为:
  1. $typeOptions = $tl->GetOptionArray(0,0,0);
刷新后,栏目全部列出来了。
 
参考:
GetOptionArray()函数在TypeLink.class.php里定义,作用是:获得类别列表
函数代码如下:
//hid 是指默认选中类目,0 表示“请选择类目”或“不限类目” 
//oper 是用户允许管理的类目,0 表示所有类目 
//channeltype 是指类目的内容类型,0 表示不限频道 
  1. function GetOptionArray($hid=0,$oper=0,$channeltype=0,$usersg=0)
  2. {
  3. return $this->GetOptionList($hid,$oper,$channeltype,$usersg);
  4. }
  5. function GetOptionList($hid=0,$oper=0,$channeltype=0,$usersg=0)
  6. {
  7. return $this->OptionArrayList;
  8. }
  9. //+ 为下级类目递归加上 '-'
  10. function LogicGetOptionArray($id, $step, $oper=0)
  11. {
  12. }
------------------------------------------------------------------------------------------------------------
另外还可以用sql语句直接修改:
  1. Update `dede_arctype` set reid=’目标父栏目ID’ where id in(2,3,4,5)
在系统SQL命令行工具中执行