Voce di menù parent evidenziata

15 contenuti / 0 new
Ultimo contenuto
Voce di menù parent evidenziata

Buondì,
primo post = primo problema,
premesso che mi sono appena avvicinata a drupal quindi lacune a go go...

Ho creato un menù primary_links con dei sottomenù tramite i secondary,
ciclando dentro i menù nel page.tpl.php son riuscita ad associare delle classi css che in particolare colorano di rosso la voce di menù attiva.

Mi piacerebbe che cliccando la voce del sottomenù rimanesse rossa anche la relativa voce padre in modo da conservare il percorso,
ho capito però che drupal considera attiva solo la voce di menù che corrisponde al nodo visualizzato al momento :(

Ho pensato di intervenire sempre nel codice:

<?php
 $t
=0; foreach ($secondary_links as $link):
?>

  • <?php
    print l(t($link['title']), drupal_get_path_alias($link['href']), array('attributes' => array('class' => 'sottomenu', )));
    <
    strong><em>qualcosa del genere:.....$link->parent=>array('class' => 'active', ); .....</em></strong>
                           
    ?>

  • <?php
     
    endforeach;
    ?>

    ma non trovo la sintassi corretta da nessuna parte :(
    qualcuno mi può aiutare? è l'approccio migliore per risolvere un problema del genere ?

    Grazie anticipatamente

    se vai a vedere con firebug la voce del menù padre prende un'altra classe (qualcosa tipo active-link ma non me lo ricordo)
    Basta che modifichi il css di quella classe.

    Si grazie,
    però il problema è che non so come attribuirgli quella classe,
    dovrei risalire al padre dalla voce figlio e non capisco come sono strutturati gli array dei menù...:(

    il codice non lo devi toccare (ed è consigliabile non modificare il codice se c'è un metodo direttamente da drupal).
    Nelle impostazioni del menu si può settare il menu "padre" e il "figlio", normalmente sono primary_link e secondary_link.
    Senza toccare il codice guarda con firebug che classe prende il menù primario, perchè se ti trovi nel figlio assume una classe diversa il menu padre.
    Questa classe è active-trail, prova a definire nel css questa classe come se fosse il menu attivo.
    Ad esempi hai il tuo menu:

    .active a{
    color:red;
    }

    e ne crei un altra come:
    .active-trail{
    color:red;
    }

    Vedrai che diventerà rossa

    Purtroppo ho dovuto modificare il codice nel page.tpl perchè devo necessariamente modificare i css...
    succede questo:

    Home             pippo                  topolino
                              pippo1                topolino1
                                 pippo2                  topolino2

    se clicco pippo si espandono pippo1 e pippo2 e pippo diventa rosso
    se clicco però pippo1, questo diventa rosso ma pippo ritorna grigio perdendo la classe 'myclass active' e assumendo semplicemente la classe 'myclass' (niente active trail :( ...)

    Ho paura che avendo modificato le classi dal page.tpl non possa far altro che intervenire sempre sul page.tpl per dire a pippo1 che quando diventa attivo suo padre deve rimanere attivo :(

    se hai modificato la visualizzazione del menu nel codice allora forse hai cambiato delle impostazioni.
    Prova a cercare qualche modulo che ti aiuti in questo, forse questo:http://drupal.org/project/node_menu_parent

    grazie mille a entrambi,

    menu-trails mi sembra proprio ciò che cerco il problema è che non riesco a configurarlo :(
    ho il breadcrumb disattivato (cancellato nel page.tpl)
    nella pagina di conf come menù-trails menù ho settato i primary links e ho lasciato a none i nodetypes,
    nessuna traccia della classe active-trails :(
    che mi son dimenticata?

    ovviamente devi settare la voce padre per il tipo di contenuto, prova a smanettare un po'.

    in teoria, se una pagina appartiene ad un menu, la gerarchia di menu dovrebbe avere la classe "active trail" negli elementi <li>
    le impostazioni dei node types e della tassonomia per menutrails servono ad assegnare una voce padre agli elementi che non appartengono ad una voce di menu.
    quindi per le pagine di menu basta attivare il modulo, per le pagine non in menu bisogna configurarlo di conseguenza.

    se non vedi la classe non so che dire...dovrebbe essere la

    L'unica pagina di configurazione che ho trovato è 'trails' sotto 'menù' e come ho scritto sopra ho settato il Manutrails menu a Primary links. Per il resto non ho visto altre voci dopo poter associare un percorso gerarchico (e non uso la tassonomia)
    Ho paura che il fatto di aver ciclato dentro il primary e il secondary nel file page.tpl:

    <?php if ($secondary_links): ?>
             <?php $t=0; foreach ($secondary_links as $link): ?>
    <li>
                <?php
    print l(t($link['title']), drupal_get_path_alias($link['href']), array('attributes' => array('class' => 'sottomenu', )));
               
    ?>

    </li>
              <?php endforeach; ?>
                         

    mi abbia stravolto la normale associazione della classe active-trail :(

    Nessuna ulteriore idea?

    usa page.tpl standard del tema e vedi se va

    <a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
    usa page.tpl standard del tema e vedi se va

    Ho provato col tema pushButton e funziona!

    la funzione incriminata è:

    <?php
     
    print theme('links', $primary_links, array('class' => 'miaclasse', ))
    ?>

    che però riportata sul mio tema mi crea grossi problemi coi css...
    in pratica di default viene creata una classe specifica per ogni voce di menù e in caso di menù attivi aggiunge anche 'active' e 'active-trail'
    il problema è che non riesco comunque ad associare il css corretto ad active-trail :(

    proprio non esiste una chiamata alla voce padre ciclando sui secondary?
    tipo : se voce_secondary[i]==active
    allora anche voce_parent[voce_secondary[i]]=active

    mannaggia :(

    up :(

    Quote:
    proprio non esiste una chiamata alla voce padre ciclando sui secondary?
    tipo : se voce_secondary[i]==active
    allora anche voce_parent[voce_secondary[i]]=active

    non capisco il problema.
    hai le classi che desideravi o no?
    il problema è solo il CSS?
    se lavori su un template modificato con la funzione tuotema_links modificata non posso esserti di aiuto senza vedere tutti gli override che fai per i links
    è probabile che tu debba rivedere il tutto...