Cambiare i primary links a seconda del contenuto

11 risposte [Ultimo messaggio]
Ritratto di robyone
Offline
DrupalNiubbo
Iscritto il: 17 Nov 2005
Messaggi: 40
Cambiare i primary links a seconda del contenuto

Ciao,

vorrei che i primary links cambiassero a seconda della pagina che sto visualizzando.

Riesco a farlo senza problemi gestendo i blocchi. Drupal crea un blocco per ogni menu del quale posso gestire la visualizzazione a seconda del contenuto.

Vorrei fare la stessa cosa ma con i primary links.

Qualche idea?

Offline
Iscritto il: 2 Apr 2007
Messaggi: 722

Secondo me ti conviene modificare il tema,togli il richiamo ai primary link in page.tpl e al suo posto metti una tuaregion,dopodichè crei tutti i menu che ti servono e li gestisci in tuaregion in base alla visibilità blocchi/contenuto..

Ritratto di robyone
Offline
DrupalNiubbo
Iscritto il: 17 Nov 2005
Messaggi: 40

Ottimo consiglio...

Farò così!!!

Ritratto di robyone
Offline
DrupalNiubbo
Iscritto il: 17 Nov 2005
Messaggi: 40

Però ho un problema:

nei blocchi i menu vengono visti giustamente come:
- voce
- voce2
- voce 3

io invece li voglio vedere come i primary links ossia:

voce voce2 voce3

Come posso fare?

Offline
Iscritto il: 2 Apr 2007
Messaggi: 722

Intendi orizzontali e nn verticali ?.. Se è cosi devi agire sul css tramite il parametro display:inline; .. Nn so quanti blocchi menu tu debba creare,se sono un paio allora temizza i blocchi in base al delta blocco,in quel modo solo il tale blocco prende quei valori di stile.. Se invece hai parecchi blocchi menu da realizzare,temizza direttamente la region che fai sicuramente prima.

Ritratto di robyone
Offline
DrupalNiubbo
Iscritto il: 17 Nov 2005
Messaggi: 40

Grazie mille,

però non riesco a metterli in linea.
Ho usato lo stesso css dei primay link che include anche il display:inline; ma non cambia nulla.
Se uso poi la stessa dicitura del tema: print theme('links', $primary_links); mi da questo waring:

"warning: Invalid argument supplied for foreach() in... "

Magari sto sbagliando ma io che cosa ho fatto:
1 - Ho sostituito il codice

<?php
if (isset($primary_links)) :
?>

<?php
print theme('links', $primary_links);
?>

<?php
print "<div id=\"MyPrimary\">$content_top</div>";
?>

con il codice

<?php
print theme('links', $content_top);
?>

dove content_top è una mia region.

Offline
Iscritto il: 2 Apr 2007
Messaggi: 722

Ma perchè se hai una tua region,gli fai printare anche i primary ?.. Togli il primary e tieni solo la tua region,dopodichè metti il blocco primarylinks in tua region,poi passa ad editare il css,ho scritto il tutto al volo perciò controlla :)

<div id="tuaregion"><?php print $tuaregion ?></div>

#tuaregion {display: inline;}
#tuaregion ul, #tuaregion ul li  {display: inline;}
#tuaregion a {}
#tuaregion a:hover {}
#tuaregion a:visited {}
#tuaregion a.active {}

Ritratto di robyone
Offline
DrupalNiubbo
Iscritto il: 17 Nov 2005
Messaggi: 40

Ho fatto come mi hai suggerito poi ho aggiunto il blocco del mio menu personalizzato nella mia region ma lo vedo in verticale anziché in orizzontale.

Non capisco cosa sto sbagliando

Offline
DrupalNiubbo
Iscritto il: 10 Mar 2008
Messaggi: 23

devi editare per bene i CSS! quello che ti ha suggerito Morxe era un esempio... devi farlo coincidere con la tua situazione... innanzi tutto per la regione nuova, che devi esplicitare in Template o nel file INFo del TEMA usato!
poi devi configurare il CSS del Menu in maniera adeguata ( ti consiglio di provarlo su un editor HTML senza farlo passare per il server... vedi sa va.. poi lo applichi al tuo menu!)

Quel codice che ha ti suggerito Morxe è corretto, ma lui nn sa cosa ti serve, quindi ha inserito

{ }

Te devi metterci dei parametri lì dentro! tipo
background
font

Ritratto di robyone
Offline
DrupalNiubbo
Iscritto il: 17 Nov 2005
Messaggi: 40

Ti ringrazio per la precisazione ma non sono "così a secco" di sviluppo web.

Il problema è che ho fatto come mi è stato suggerito da Morxe compreso le tue sottolineature ma il menu continuo a vederlo in verticale.

Ripeto, il menu lo posiziono nella region come blocco. Non è che forse è li che sto sbagliando?

Offline
Iscritto il: 2 Apr 2007
Messaggi: 722

Allora frena un secondo :) .. se cosi nn funziona è perchè la classe che inserisci non è quella giusta,oppure il blocco ne eredita una tutta sua...guarda nell'html della pagina generata...ti consiglio di scaricare un plugin per firefox,tipo firebug o cssviewer,una volta attivato riesci a risalire a tutte le classi,compresi i delta blocco senza guardarti a mano l'html :)

Offline
DrupalNiubbo
Iscritto il: 10 Mar 2008
Messaggi: 23

scusa... ma su una semplice pagina HTML + CSS il tuo codice funziona oppure no?? se va allora significa che o la classe nnè quella oppure c'è qlc errore più complesso... ma prima controlla che funzioni senza ricorrere al server!

Iscriviti al DrupalCamp Torino 2010 corner_ribbon_1.png