Menu a due livelli con memoria, come si fa?

9 contenuti / 0 new
Ultimo contenuto
Menu a due livelli con memoria, come si fa?

Ho un menu nella forma

Voce 1
--- Voce A
--- Voce B
--- Voce C

Voce 2
--- Voce A
--- Voce B
--- Voce C

Al caricamento della pagina sono visibili solo Voce 1 e Voce 2.
Cliccando su una voce di menu si apre il nodo relativo e sotto la voce selezionata appare il sotto menu (le voci A,B,C)
Cliccando adesso su una sottovoce del menu, si apre il nodo relativo e la voce del menu viene evidenziata come selezionata.

Fin qui nessun problema.

Si da il caso però che nei due sottomenu ci siano dei link condivisi, ovvero che linkano allo stesso nodo.

Cliccando su uno di questi link condivisi tra più menu, come è possibile  rintracciare quale è il menu padre?

Il problema è che deve rimanere aperto, non serve javascript ma delle classi css che vengano stampate riconoscendo da dove si è arrivati a quel nodo.

<--- Andrea Mancini - biso.it --->

Se lo vuoi aperto basta che vai in amministrazione menu e selezioni come espanso il menu che vuoi rimanga aperto.

Se faccio così e ci sono due contenuti figli che linkano le stesso nodo mi apre tutti i menu che contengono quel nodo indipendentemente dal menu per il quale sono passato.

<--- Andrea Mancini - biso.it --->

questo modulo potrebbe fare al caso tuo?
http://drupal.org/project/menu_breadcrumb

Quanti menù hai?

bisonte_biscottato wrote:
Ho un menu nella forma
...
Si da il caso però che nei due sottomenu ci siano dei link condivisi, ovvero che linkano allo stesso nodo.
Cliccando su uno di questi link condivisi tra più menu, come è possibile  rintracciare quale è il menu padre?

Se hai un menù solo, verrà evidenziato il primo link condiviso (perchè la scansione e dal livello più alto a quello più basso, e dal inizio alla fine della lista)
Se hai più menu, ogniuno verrà evidenziato, ma non c'è informazione per dire quale dei link è stato cliccato.

Ma, se aggiungi un query 'fantasma', tipo /url-di-voce-A?m=voce-1 allora puoi usare questo per capire, senza ingarbugliare Drupal (in codice sarebbe sufficiente un $_GET('m')). Per essere sicuro che funziona (con o senza clean URLS) bisogna fare un override di theme_menu_item_link, vedi http://drupal.org/node/201848

Più imparo, più dubito.

jhl.verona wrote:
Quanti menù hai?
Se hai un menù solo, verrà evidenziato il primo link condiviso (perchè la scansione e dal livello più alto a quello più basso, e dal inizio alla fine della lista)
Se hai più menu, ogniuno verrà evidenziato, ma non c'è informazione per dire quale dei link è stato cliccato.

Ma, se aggiungi un query 'fantasma', tipo /url-di-voce-A?m=voce-1 allora puoi usare questo per capire, senza ingarbugliare Drupal (in codice sarebbe sufficiente un $_GET('m')). Per essere sicuro che funziona (con o senza clean URLS) bisogna fare un override di theme_menu_item_link, vedi http://drupal.org/node/201848[/quote]

La tua soluzione può funzionare.
Io avevo pensato a qualcosa di simile ma creando una tassonomia a copia di ogni menu, così da creare forzatamente la gerarchia contenuto-menu.

Forse questo risolve?
http://drupal.org/project/power_menu

<--- Andrea Mancini - biso.it --->

Non ti seguo bisonte_biscottato, se viene cliccato il link (da uno o l'altro menu item) come fa tassonomia o power_menu a capire quale dei due (o tre, quattro) è stato usato? Dopottutto l'URL è sempre quello...

Più imparo, più dubito.