2010-04-16 3 views
1

que je développe un site qui nécessite une certaine duplication des liens dans le menu:Controllling Drupal-trail actif actif/s avec des éléments de menu en double

Section A
- Présentation
- Témoignages

Section B
- Présentation
- Témoignages

Témoignages
- Section A
- Section B

So 'Section A> Témoignages' et le point 'de Témoignages> Section A' au même noeud. Mais quel que soit le lien de menu que les gens utilisent, je veux que la personne soit dans la section A.

Le problème est que D6 n'aime pas les éléments de menu dupliqués, et il attribue plutôt les classes active et active-trail de façon imprévisible. Donc, mon idée était de créer un nœud d'espace réservé pour chaque élément dans le menu Témoignages, puis de définir l'URL comme quelque chose comme "testimonials/redirect/section-a", puis d'utiliser mod_rewrite pour rediriger vers "section- a/témoignages ".

Avec cette solution, je n'aurai pas de chemins en double dans le menu. J'espère juste que cela ne blesse pas mon SEO.

Est-ce que quelqu'un connaît une meilleure solution?

Répondre

3

J'ai aussi ce problème. Lorsque plusieurs éléments de menu contiennent un lien vers le même contenu, Drupal utilisera l'élément avec l'ID de menu plus bas comme canoniques - quel que soit le lien menu vous cliquez, vous obtiendrez la piste active pour le menu id le plus bas. Le meilleur moyen que je connaisse pour le réparer, ce que je n'aime pas, est de pointer vos éléments de menu non-canoniques vers un nœud qui redirigera vers le nœud que vous voulez (vous pouvez utiliser le filtre d'entrée php avec un drupal_goto ou similaire)

Malheureusement, le module path_redirect ne résoudront pas ce problème comme les chemins de redirection, il crée ne peut pas être utilisé comme éléments de menu. Je ne suis pas sûr pourquoi il n'y a pas plus de gens avec ce cas d'utilisation en d6 - il est assez courant dans mon expérience de vouloir les éléments de menu de haut niveau pour pointer vers le premier enfant, et de vouloir mettre le sentier actif à le premier enfant. Module

de nodesymlinks résout le cas d'utilisation inverse - il vous permet de configurer les éléments de menu multiples, chacun avec son propre chemin, pointant vers le même nœud. Ainsi, en fonction du lien sur lequel vous cliquez dans le menu, vous obtenez un parcours actif différent. ce module serait un bon modèle pour un module "élément de menu canonique".

2

Nous avons eu le même problème dans notre projet et nous avons réussi à avoir le tracé actif de travail définissant correctement dans chaque élément de menu dupliqué un « #n » à la fin. Par exemple:

Section A 
-- Introduction -> node/1#1 
-- Testimonials 

Section B 
-- Introduction -> node/1#2 
-- Testimonials 

Testimonials 
-- Introduction -> node/1#n 
-- Section B 

est pas la plus jolie solution mais certainement plus vite un :) Le seul inconvénient est que nous avons trouvé si un utilisateur clique d'abord dans « Section A - Introduction » et juste après dans la « Section B - - Introduction "la page ne sera pas rechargée.

Hope this aide

1

Multiple Node Menu pourrait faire l'affaire:

Ce module modifie les "paramètres du menu" sous forme d'édition de nœud standard pour permettre la gestion de plusieurs liens de menu à un nœud. Le comportement standard de Drupal est de se soucier seulement d'un seul lien de menu pour l'anode, tous les autres liens de menu doivent être ajoutés via l'administration du menu.

Questions connexes