0

I have an entity, when i submit this entity i want to add the new entity created in a menu as a link. But in this menu i have a tree links so i don't know how to put my link in a specific tree. I saw the "mlid" and the "plid", i think "mlid" is the id of the menu and the "plid" is the id of the mother link.

So if I want to add a new item, what do I need to do? Do I get the ID of the parent link? Do I need to use menu_link_save()? How do I construct my new link?

This is the code I am using.

$menu_intervenant_loaded = menu_load_links('menu-intervenant-project'. $idProject); foreach ($menu_intervenant_loaded as $menu_item) { $menutitle = str_replace(" ","+", $menu_item['link_title']); $mlid = $menu_item['mlid']; $link = menu_link_load($mlid); $haschildren = $menu_item['has_children']; if ($menutitle == "Entreprises") { //The parent link: here is where I need to create my link. $item = array( 'title' => 'Montitre', 'access' => TRUE, 'link_path' => 'encore un test', 'link_title' => 'Mon titre qui fonctionne pas', 'plid' => $mlid, 'customized' => 1, 'external' => 1, ); menu_link_save($item); } } 

EDIT : With this code the link appear when i debug my menu before submit, but doesn't appear in my administration and front-end where the menu is placed..

0

1 Answer 1

0

Value of plid is the menu link id of the item you want your new item to be a child of (=parent id).

To create your link, simply use something like:

$item = array( 'link_path' => 'node/' . $node->nid, 'link_title' => $node->title, 'plid' => 426, ); menu_link_save($item); 
7
  • Thanks i tried that but the link isn't added to my menu, but when i debug the menu i can see the link added is the link list of this menu. Why he isn't appear in my administration of this menu ? Commented Nov 25, 2014 at 13:34
  • Sorry @Remi I don't understand very well what happens. The link doesn't appear neither in your menu (front-end), nor in the admin (admin->structure->menu) but you see it where?? Commented Nov 25, 2014 at 13:37
  • Ok sorry for my english. The link appear when i debug (kpr($link);) my menu, i can see all my links of this menu. But in my "admin->structure->menu" and my "front-end where the menu is placed" the link created doesn't appear. Commented Nov 25, 2014 at 13:41
  • Could you try to add a line in $item array: 'customized' => 1, ? Commented Nov 25, 2014 at 13:44
  • I saved my link with that array: $item = array('link_path' => 'blabla','link_title' => 'Lot 1','title' => 'Lot 1','plid' => $mlid,'customized' => 1); And nothing appear. The link is saved because i can see him if i debug the menu but won't appear in my administration and front-end... So i don't know why. Commented Nov 25, 2014 at 13:53

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.