首页 / 帖子
如何在 updated 一個node 以後 在menu 裡面刪掉這個node

大家好


我建立了一個內容類型  這個內容類型里有七個分類


我有一個問題就是要讓這個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);  
   }}


0个答案