大家好
我建立了一個內容類型 這個內容類型里有七個分類
我有一個問題就是要讓這個node 在不同的分類底下時,當客戶進到node頁面時 上方的taxonomy 分類會發亮
所以我用rules 加上 menu rules 來完成將node 加入到特定的menu 中
但是這有一個問題當使用者重新編輯這篇node的時候 如果他選擇不同的 分類 而上面的分類不會變成使用者所選擇的那個分類
依舊是使用者一開始所選的那個分類
所以我寫了一段程式來修改這個部份,讓使用者編輯node 時 如果重新選擇分類的話 分類會變成使用者新選擇的那個分類
但是在menu 選單中 再一開始的選擇的那個分類中 依然會出現這個node 在底下 要怎樣才可以刪掉這個node?
function hellosanta_node_update($node){ $type=$node->type;
if($type="language_of_the_god"){
$taxonomy=$node->field_taxonomy['und'][0]['value'];
if($taxonomy=="god"){
unset($node->field_taxonomy2);
unset($node->field_taxonomy3);
unset($node->field_taxonomy4);
unset($node->field_taxonomy5);
unset($node->field_taxonomy6);
//delete node link from menu
$arr = menu_node_get_links($node->nid);
//dpm($arr);
$arr('delete',$node);
//add link to 什麼是與神對話
$item = array(
'link_path' => 'node/' . $node->nid,
'link_title' => $node->title,
'menu_name' => 'main-menu', // Menu machine name, for example: main-menu
'weight' => 0,
'language' => $node->language,
'plid' => 696, // Parent menu item, 0 if menu item is on top level
'module' => 'menu',
);
menu_link_save($item);
}
elseif($taxonomy=="confusing"){
unset($node->field_taxonomy1);
unset($node->field_taxonomy3);
unset($node->field_taxonomy4);
unset($node->field_taxonomy5);
unset($node->field_taxonomy6);
//delete node link from menu
$arr = menu_node_get_links($node->nid);
//dpm($arr);
$arr('delete',$node);
$item = array(
'link_path' => 'node/' . $node->nid,
'link_title' => $node->title,
'menu_name' => 'main-menu', // Menu machine name, for example: main-menu
'weight' => 0,
'language' => $node->language,
'plid' => 593, // Parent menu item, 0 if menu item is on top level
'module' => 'menu',
);
menu_link_save($item);
}
elseif($taxonomy=="wisdom"){
unset($node->field_taxonomy1);
unset($node->field_taxonomy2);
unset($node->field_taxonomy4);
unset($node->field_taxonomy5);
unset($node->field_taxonomy6);
$item = array(
'link_path' => 'node/' . $node->nid,
'link_title' => $node->title,
'menu_name' => 'main-menu', // Menu machine name, for example: main-menu
'weight' => 0,
'language' => $node->language,
'plid' => 594, // Parent menu item, 0 if menu item is on top level
'module' => 'menu',
);
menu_link_save($item);
}
elseif($taxonomy=="community"){
unset($node->field_taxonomy1);
unset($node->field_taxonomy2);
unset($node->field_taxonomy3);
unset($node->field_taxonomy5);
unset($node->field_taxonomy6);
$item = array(
'link_path' => 'node/' . $node->nid,
'link_title' => $node->title,
'menu_name' => 'main-menu', // Menu machine name, for example: main-menu
'weight' => 0,
'language' => $node->language,
'plid' => 595, // Parent menu item, 0 if menu item is on top level
'module' => 'menu',
);
menu_link_save($item);
}
elseif($taxonomy=="life"){
unset($node->field_taxonomy1);
unset($node->field_taxonomy2);
unset($node->field_taxonomy3);
unset($node->field_taxonomy4);
unset($node->field_taxonomy6);
$item = array(
'link_path' => 'node/' . $node->nid,
'link_title' => $node->title,
'menu_name' => 'main-menu', // Menu machine name, for example: main-menu
'weight' => 0,
'language' => $node->language,
'plid' => 596, // Parent menu item, 0 if menu item is on top level
'module' => 'menu',
);
menu_link_save($item);
}
elseif($taxonomy=="education"){
unset($node->field_taxonomy1);
unset($node->field_taxonomy2);
unset($node->field_taxonomy3);
unset($node->field_taxonomy4);
unset($node->field_taxonomy5);
$item = array(
'link_path' => 'node/' . $node->nid,
'link_title' => $node->title,
'menu_name' => 'main-menu', // Menu machine name, for example: main-menu
'weight' => 0,
'language' => $node->language,
'plid' => 597, // Parent menu item, 0 if menu item is on top level
'module' => 'menu',
);
menu_link_save($item);
}}