2010-03-27 3 views
2

J'ai un menu avec deux niveaux, le deuxième niveau montré dans le menu secondaire.Comment puis-je ouvrir un sous-menu Drupal 6 par programmation?

Comment puis-je ouvrir le deuxième niveau de menu par programmation à partir de pages autres que celles liées dans le menu?

Je l'ai regardé theme_preprocess_page et d'autres mais ne peut pas comprendre comment le changement de l'état de l'élément de menu de effondré- actif.

Répondre

0

En réponse à ma propre question, ce nœud api hook le fait.
Inspiré par le module Menu Trails, Mike a mentionné.

function phptemplate_nodeapi(&$node, $op) { 
    if($open_menu_for_this_node && $op == 'view') { 
    $item = menu_get_item(); 
    $item['href'] = $menu_item_to_open; 
    menu_set_item(NULL, $item); 
    } 
} 
1

Pourriez-vous résoudre votre problème en plaçant simplement les éléments dans le menu et en ne les activant pas? Si ce n'est pas le cas, vous pouvez consulter le module Menu Trails, car il offre beaucoup plus de flexibilité pour la configuration des éléments de menu actifs.

1

J'ai été déconner avec un problème similaire pendant un moment.

Il y a de la documentation ici: http://api.drupal.org/api/group/menu/6 mais c'est un peu sommaire sur certains points. Cette fonction semble fonctionner: http://api.drupal.org/api/function/menu_navigation_links/6. Voyez comment vous pouvez définir le niveau (en tant qu'argument) afin que le menu affiche ce que vous voulez.

Ceci peut ne pas être exactement ce que vous voulez mais avec optimisme vous dirigera dans la bonne direction!

0

En dehors d'un contexte de noeud quelque chose comme ceci fonctionnera:

function HOOK_init() { 

    if (arg(0) == 'exhibits' && arg(2) == 'publications') { 
    $normal_path = drupal_get_normal_path(arg(0) .'/'. arg(1)); 
    $item = menu_get_item(); 
    $item['href'] = $normal_path; 
    menu_set_item(NULL, $item); 
    } 

} 

cet exemple particulier cherche à faire des expositions/Menu XXXXX actif lorsque des expositions/XXXXX/publications est le chemin. expositions/XXXXX/publications n'est pas dans le menu en question, mais expositions/XXXXX est. Convertit simplement les expositions/XXXXX en nœud/NNNN

Questions connexes