it-swarm-es.com

¿Cómo habilitar el enlace del menú al crear un nuevo nodo?

Intento habilitar el enlace del menú mediante programación, así es como lo hago:

function create_menu_link() {
    $node = new stdClass();
    $node->type = 'mytype';
    node_object_prepare($node);

    $node->menu['link-title'] = $menu_title;

    node_save($node);
}

Pero establecer solo el título no funciona. En $node->menu hay algunas otras variables como mlid y plid que se establecen en 0 ¿Tiene que ver con esto? Los menu_name se establece en main-menu:0, module se establece en menu.

1
Ek Kosmos

Deberá crear el elemento del menú por separado, utilizando menu_link_save

$item = array(
  'menu_name' => 'main-menu',
  'link_title' => $node->title,
  'link_path' => 'node/'. $node->nid,
);
menu_link_save($item);
4
Derek Ahmedzai

No es necesario que cree el enlace manualmente. El enlace menu_node_save () se encargará de la creación del enlace automáticamente al guardar el nodo, si proporciona las siguientes variables:

  $node->menu['enabled'] = TRUE;
  $node->menu['link_title'] = t('My title');
  $node->menu['description'] = ''; // Needed even if empty to avoid notices.
1
peterpoe