Io vorrei poter utilizzare un menu che sia lo stesso per tutti i siti web che utilizzano lo stesso tema core.
Questo menu deve essere indipendente da ogni sito web. Quindi non devo crearlo dall'interfaccia di ogni sito e non deve esistere all'interno del DB di ogni singolo sito. Il menu è orizzontale.
Detto così sembra più che facile ma c'è un problema...
Il le voci di Menu hanno un sottomenu.
La questione che incasina è che io vorrei che il sottomenu si aprisse NON ricaricando la pagina, ma espandendosi (nel senso applicare un display: block la dove prima c'era un display: none ). Cioè io clicco sulla voce di menu orizzontale e questo menu senza ricaricare la pagina, apre un altro menu orizzontale (sottomenu) proprio sotto all'area del primo menu. Praticamente la stessa cosa che fa il modulo Dynamic Persistent Menu.
Il problema è che io non idea di come fare una cosa del genere che funzioni su tutti i siti web senza configurare un Menu apposito su ogni sito.
Potete aiutarmi? Si può sistemare la cosa con qualche funziona in template.php e/o trovando un modo per usare javascript?
Ciao,
Hai più modi per poter fare quello che vuoi (mi è oscuro il perché lo vuoi statico...). Comunque sia puoi:
1) realizzare un template con all'interno (in page.tpl.php) il menu statico;
2) realizzare una funzione in template.php che ti restituisca il menu;
3) utilizzare javascript per il funzionamento del menu (forse un pò eccessivo, dato che l'html lo fai tu);
4) utilizzare un menu in puro css (http://www.cssplay.co.uk/menus/ qui trovi degli ottimi menu realizzati unicamente con css)
;)
I motivi x cui cerco un motivo così fatto sono:
http://www.sanisapori.eu
E se volessi porre le voci di menu e tutti i sottomenu ad esse relative all'interno di array che contengono anche i link? Come potrei fare x gestirli questi array secondo le logiche di drupal in modo tale da avere:
<div id="menu">...</div>
<div id="sottomenu">...</div>
Definendo gli array e capendo come gestirli è possibile popolare il sottomenu così come drupal popola i secondary links quando questi sono invece delle voci di gerarchia dei primary links. Questo sarebbe molto vantaggioso per puoi inserire una specie di :
<?php
if ($sottomenu) then
...
endif
... o qualcosa di simile
Come fare?
http://www.sanisapori.eu
Secondo me ti stai complicando la vita! Se il menu è statico non ha senso, secondo me, che vai a fare funzioni su funzioni (che portano via memoria a php) visto che il menu comunque non è dinamico. Fai prima e con meno sforzo a farlo html puro dentro page.tpl.php.
;)
Su questo sono d'accordo, ma dal sito che mi hai indicato o scovato solo modelli di menu, che quando li ho testati, aprivano il sottomenu in sovrapposizione, nel senso che la struttura è così:
<div>
<ul>
<li>menu item 1
<div>
<ul>
<li>sottomenu 1 item 1<li>
<li>sottomenu 1 item 3<li>
<li>sottomenu 1 item 2<li>
</ul>
</div>
</li>
<li>menu item 2
<div>
<ul>
<li>sottomenu 2 item 1<li>
<li>sottomenu 2 item 3<li>
<li>sottomenu 2 item 2<li>
</ul>
</div>
</li>
</ul>
</div>
Con questa struttura, quando il display: block mostra il sottmenu questo immncabilmente va in sovrapposizione ad altre cose ed anche se ti metti x cercare di gestire meglio la cosa, non risolvi bene.
La cosa corretta sarebbe quella mostrata nelle immagini allegate che ho appena aggiunto nel post di apertura di questa discussione, simile al comportamento del modulo Dynamic Persistent Menu.
http://www.sanisapori.eu
se ho capito bene il livello superiore non contiene veri link ma solo dei segnaposto per aprire il relativo sottomenu.
in questo caso ti serve un modulo come special_menu_items per gestire link che non sono veri link.
poi, sempre se ho capito bene, vuoi che il sottomenu sia persistente anche se non ci tieni il cursore sopra.
questa roba si può fare con un semplice superfish orizzontale (ad es quello presente in fusion con questa aggiunta)
per fare in modo che i sottomenu rimangano "aperti" devi giocare di CSS facendo in modo che il sottomenu sia visibile quando la voce di menu genitore ha la classe active o active-trail
se vuoi costruirti un array del tuo menu come dici tu vedi questa soluzione: http://drupal.org/node/327252
con questo sistema puoi gestire completamente l'output anche se, sono d'accordo, è un po' ridondante visto che già lo fa drupal.
vedi anche http://drupal.org/project/superfish che forse ti offre una soluzione già pronta
Certified to Rock
Lo scopo del menu è quello di raggruppare dei link a tutti i sitiweb del network, raggruppandoli cose fossero categorizzati:
E questo menu deve essere uguale per tutti i siti web del network. Per tale motivo parto dal presupposto che creare il menu con gli strumenti dell'interfaccia di drupal (menu) diventi una cosa laboriosa nel momento in cui devi fare dei cambiamenti, considerando che i siti sono tanti e tendono ad aumentare sempre +.
Quindi può essere che alcuni link del livello superiore siano dei segnaposto che aprono un sottomenu orizzontale, qualche altro magari può essre un link diretto ad un altro sitoweb.
Si e No. se passi il cursore sopra ad un segnaposto (o ci clicchi sopra), si apre il sottomenu relativo, va li sul sotto menu clicchi sul link che ti porta verso un'altro sito web del network. Se ti allontani può benissimo richiudersi. Ma nulla vieta di lasciarlo aperto.
Il mio problema è che il menu non dovrebbe essere creato all'interno del db di drupal, quindi non creato dall'interfaccia di amministrazione di drupal, per il motevo spiegato su. Mi serve generarlo in maniera indipendente, magari con una funzione in template.php richiamata in page.tpl.php
E' una soluzione già pronta sicuramente, maaaa ha sempre bisogno di un menu creato all'internod i drupal... mi pare.
Il menu deve essere uguale per ogni sito web ed in caso di cambiamenti deve essere facilmente gestibile. Quindi sono obbligato a non crearlo su ogni sito web del network, tramite l'interfaccia di drupal, semmai tramite una funzione in template.php come detto prima.
http://www.sanisapori.eu
Ho risolto il problema.
Potete vedere il risultato in questo sito (che poi è uguale x tutti i siti al momento attivi):
http://snowblade.ejarvis.eu/
Praticamente, ho aggiunto un menu statico esterno a quelli di drupal, aggiungendolo all'interno del tema core con una funzione in php in template.php e aggiunta poi in page.tpl.php.
Questa soluzione non è che mi piace proprio tantissimo, però per il momento va bene.
Tra l'altro è una soluzione momentanea, perchè con l'arrivo di Drupal 7, il tema core qui realizzato per Dupral 6, non sarà più utilizzabile.
In ogni caso, sono partito da questa soluzione http://www.cssplay.co.uk/menus/pro_dropline.html presente nel sito suggerito da Gioppy. Grazie mille Gioppy, mi sei stata di grande aiuto :-D.
L'idea per Drupal 7 è di creare una customizzazione di Bartik da usare come tema core, quindi non so ancora cosa ci sarà in futuro. Spero qualcosa di buono.
Infine ho qualche problema con IE7 ma non per questo specifico menu che di per se funziona benissimo... ma per il Primary Links (li menu appena sotto) che con IE7 fa i capricci.
http://www.sanisapori.eu