【发布时间】:2010-12-07 18:31:02
【问题描述】:
我想在节点更新时更改菜单树的父级。我正在使用名为“规则”的模块来访问更新事件,我的代码如下:
if ($node->taxonomy[1] == "1") {
$plid = 440;
} else if ($node->taxonomy[1] == "2") {
$plid = 379;
}
if($plid) {
db_query("UPDATE {menu_links} SET plid='".$plid."', p1='".$plid."' WHERE link_path='"."node/".$node->nid."'");
}
问题是这个更新的 $node 在它下面还有一些子菜单项,在主菜单中,当我更新节点以更改父节点时,它的子节点只是高一级而没有得到与当前菜单项一起移动。有没有一种简单的方法可以将整个菜单树从一个父菜单项移动到另一个父菜单项?
我想要这个,
-parent1
--child1
---sub-child1
---sub-child2
-parent2
变成这样:
-parent1
-parent2
--child1
---sub-child1
---sub-child2
你能帮帮我吗?有 Drupal 的方式吗? =)
我知道这段代码做了很多假设,但我只在一个特定情况下需要它
【问题讨论】:
-
“手动”更新数据库表是一个非常糟糕的主意,并且在菜单、路由器、缓存、别名和更多。你/坚持/运行这个数据库更新代码吗?
-
不,这只是一次糟糕的尝试。我把它放在那里只是为了澄清我真正想做的事情。