织梦后台有个栏目移动,非常的方便,时不时的就有站长想操作。
比如:把A移到B下,把C移到D下,在把E移到F下,结果,导航高亮被搞乱了。
先用标签查看
{dede:channelartlist typeid='top' row='50'} 【顶级栏目:{dede:field name='reid'/}】【子级栏目:{dede:field name='topid'/}】【栏目ID:{dede:field name='id'/}】栏目名称:{dede:field name='typename'/} {dede:channel type='son'}【二级栏目:[field:reid/]】【子级栏目:[field:topid/]】【栏目ID:[field:id/]】栏目名称:[field:typename/] {/dede:channel}{/dede:channelartlist}
说明:reid 是顶级栏目,topid 是子级栏目。
运行的效果
【顶级栏目:0】【子级栏目:0】【栏目ID:1】栏目名称:文章栏目 【二级栏目:1】【子级栏目:1】【栏目ID:10】栏目名称:二级栏目 【顶级栏目:0】【子级栏目:0】【栏目ID:2】栏目名称:软件栏目 【二级栏目:2】【子级栏目:2】【栏目ID:5】栏目名称:三级栏目 【二级栏目:2】【子级栏目:2】【栏目ID:6】栏目名称:三级栏目2 【顶级栏目:0】【子级栏目:0】【栏目ID:3】栏目名称:一级栏目 【二级栏目:3】【子级栏目:3】【栏目ID:4】栏目名称:二级栏目 【二级栏目:3】【子级栏目:3】【栏目ID:7】栏目名称:三级栏目3 【顶级栏目:0】【子级栏目:0】【栏目ID:8】栏目名称:图集栏目 【顶级栏目:0】【子级栏目:0】【栏目ID:9】栏目名称:图集栏目2
顶级栏目的 reid 和 topid 都是 0 说明正常。
二级栏目的 reid 和 topid 都是 顶级栏目的id 说明TA是某个顶级栏目下的二级栏目。
当某个顶级栏目下的二级栏目的 reid 与 topid 不一样时,说明你移动过这个栏目了。
没啥大问题,不调用导航高亮时,是不会有任何问题的。当你调用导航高亮时,就会出现与其它栏目同时高亮。用SQL修复就行,方法也非常简单。
比如上面的:【二级栏目:3】【子级栏目:2】【栏目ID:7】栏目名称:三级栏目3
UPDATE `#@__arctype` SET reid=3,topid=3 WHERE id=7
这代码的意思是:把栏目ID为7的栏目,移动到顶级栏目ID为3的栏目下做二级栏目。
用代码解决
说实话,移动栏目,还手动修改问题,肯定是非常麻烦的。
当然是在移动栏目时,系统帮忙自己处理好,用代码解决问题才省力。
打开 /admin/catalog_do.php 找到,大概在251行
成功移动目录
在TA上面的第三句:有的需要改,有的不需要改哦。
【需要修改】需要修正的代码
$dsql->ExecuteNoneQuery("UPDATE `#@__arctype` SET reid='$movetype' WHERE id='$typeid' ");
【无需修改】这是正确的代码
$dsql->ExecuteNoneQuery("UPDATE `#@__arctype` SET reid='$movetype',topid='$topid' WHERE id='$typeid' ");
因为版本的问题,有的代码修改了,但有的还没有改,那你就改过来吧。
+15 15 个回复 | 最后更新于 2025-01-16
登录后方可回帖