• User Newbie

    in parole di codice cosa dovrei scrivere? :bho:


  • Moderatore

    Ciao MercuriDesign,

    ti spiego in codice ciò che ha detto PietroR.

    Crei la funzione contenente il menù ed un parametro variabile come questo esempio

    [PHP]
    <?php
    function getMenu($class){
    echo '<div id="navbar-collapse-1" class="navbar-collapse collapse pull-right '.$class.'">
    <ul class="nav navbar-nav">
    <li><a href="index.php" data-toggle="dropdown">Home</a></li>
    <li><a href="team.php">Il Team</a></li><li class="dropdown"> <a href="blog.html" data-toggle="dropdown" class="dropdown-toggle">Blog </a>
    <ul class="dropdown-menu multilevel" role="menu">
    <li> <a href="blog-pc.html">Guida Pc</a> </li>
    <li> <a href="blog-mac.html">Guida Mac</a> </li>
    <li> <a href="blog-come-si-fa.html">Come si fa?</a> </li>
    </ul>
    </li>
    <li><a href="contatti.php" data-toggle="dropdown" class="dropdown-toggle">Contatti</a></li>
    </ul></div>';
    }
    ?>
    [/PHP]

    Poi dentro il tuo foglio di stile dichiari le classi con i rispettivi colori, come ad esempio:

    
    .giallo{background:yellow;}
    .rosso{background:red;}
    
    

    Poi ti basta richiamare il menù dentro le tue pagine richiamando la funzione e passando la classe desiderata:

    [PHP]
    getMenu("giallo");
    [/PHP]

    ed il gioco è fatto.


  • User Attivo

    Ma in questo modo non si colorerebbe tutto il menu e non solo la voce blog (in caso contrario ho preso un abbaglio..)?


  • User Newbie

    ok, ultima cosa.. e poi vi dico se funziona 🙂
    Io prima per richiamare il menù scrivevo:

    [PHP]<?php include('menu.php'); ?>[/PHP]

    Adesso per richiamare il menù con la funzione e relativa classe come devo scrivere?


  • User Newbie

    @PietroR said:

    Ma in questo modo non si colorerebbe tutto il menu e non solo la voce blog (in caso contrario ho preso un abbaglio..)?

    Secondo te non è giusto il metodo di MiWebDesign? cosa faresti tu?


  • User Attivo

    Secondo me si colora tutto il menu in questo modo, però chiedo conferma anche a MiWebDesign, visto che il codice è stato scritto da lui.


  • User Attivo

    Potrsti anche aggiungere un javascriopt che vede la url e se corrisponde alla voce di menù aggiunge una claasse "active".

    In Jquery dovrebbe venire facile da fare.


  • User Attivo

    Scusami: il concetto analogo, più lungo ma elimina js, lo puoi sviluppare anche in php, leggendo l'url della pagina ed estraendo tutto con un cofronto del tipo "se contiene" url .

    Es: se su miosito.it/blog-mac.html

    ----------> funzione che fa il match dell'url (del tipo $var_url che è blog-mac.html )

    ----------> metti tutte le voci di menù in un array e le stampi da un ciclo che verifica se quella voce di menù (o menglio, il suo link) corrisponde a quella riga

    ----------> f(x)
    if ( $var_url == $voce_di_menu)

    ----------> definisci la classe da mettere nel <a href> $active = class="ative"

    <a href="blog-mac.html" $active >Guida Mac</a>


  • Moderatore

    Sì in quel modo si colora tutto il menù, se vuoi colorare solo un tasto metti la posizione dentro di esso e fai un controllo della posizione che vuoi assegnargli dentro il menù.

    Non hai specificato che volevi colorare la VOCE e non tutto il menù.

    Quello che sto cercando di realizzare è un menù di navigazione ( **soggetto **), (in realtà il menù c'è già.. ma è scritto in html) scritto in una sola pagina, per esempio "menu.php", che però riesca a riconoscere quando è in una determinata pagina e quindi colorarsi ( azione ricollegata al soggetto di cui si sta parlando ) in un modo diverso.

    Questo è il codice aggiornato della funzione.

    [PHP]
    <?php
    function getMenu($position){
    echo '<div id="navbar-collapse-1" class="navbar-collapse collapse pull-right">
    <ul class="nav navbar-nav">
    <li class="'; if($position=="1"){echo "activemenu";} echo '"><a href="index.php" data-toggle="dropdown">Home</a></li>
    <li class="'; if($position=="2"){echo "activemenu";} echo '"><a href="team.php">Il Team</a></li><li class="dropdown"> <a href="blog.html" data-toggle="dropdown" class="dropdown-toggle">Blog </a>
    <ul class="dropdown-menu multilevel '; if($position=="3"){echo "activemenu";} echo '" role="menu">
    <li class="'; if($position=="4"){echo "activemenu";} echo '"> <a href="blog-pc.html">Guida Pc</a> </li>
    <li class="'; if($position=="5"){echo "activemenu";} echo '"> <a href="blog-mac.html">Guida Mac</a> </li>
    <li class="'; if($position=="6"){echo "activemenu";} echo '"> <a href="blog-come-si-fa.html">Come si fa?</a> </li>
    </ul>
    </li>
    <li class="'; if($position=="7"){echo "activemenu";} echo '"><a href="contatti.php" data-toggle="dropdown" class="dropdown-toggle">Contatti</a></li>
    </ul></div>';
    }
    ?>
    [/PHP]

    Vedi gli if? Corrispondono alla posizione che vuoi colorare, quindi se sei dentro contatti e devi richiamare il menù anzichè l'include scrivi:

    [PHP]
    <?php
    getMenu("7");
    ?>
    [/PHP]

    Ed alla classe **.activemenu **dal tuo foglio di stile dai le proprietà che vuoi, ad es:

    
    .activemenu{background:black;}
    
    

    Ci sono altri 300 modi per farlo. Se questo non ti piace te ne dico altri.


  • User Attivo

    Ciao MercuriDesign
    questo è un esempio di un menu che farei io

    
    <?php
    function menu($menu)
    {
        ?>
        <a href="<?=PATH?>clienti.php"><div class="menuItem <?=$menu==2?'menuItemSelected':''?>"> 2 Clienti</div></a>
        <a href="<?=PATH?>magazzino.php"><div class="menuItem <?=$menu==3?'menuItemSelected':''?>"> 3 Magazzino</div></a>
        <a href="<?=PATH?>utenti.php"><div class="menuItem <?=$menu==5?'menuItemSelected':''?>">5 Utenti</div></a>
        <a href="<?=PATH?>impostazioni.php"><div class="menuItem <?=$menu==6?'menuItemSelected':''?>"> 6 Impostazioni</div></a>
        <?php
    }
    
    dove menuItemSelected è una classe css che colora il div in modo diverso
    
    

  • User Newbie

    @MiWebDesign said:

    Non hai specificato che volevi colorare la VOCE e non tutto il menù.

    Intanto mi scuso se non mi sono spiegata bene..
    Comunque ho provato il tuo metodo ma il menù è scomparso 😞
    inoltre nella pagina dove l'ho richiamatomi dice Fatal error: Call to undefined function getMenu() on line 39****


  • User Newbie

    @PietroR said:

    Ciao MercuriDesign
    questo è un esempio di un menu che farei io

    >
    <?php
    function menu($menu)
    {
        ?>
        <a href="<?=PATH?>clienti.php"><div class="menuItem <?=$menu==2?'menuItemSelected':''?>"> 2 Clienti</div></a>
        <a href="<?=PATH?>magazzino.php"><div class="menuItem <?=$menu==3?'menuItemSelected':''?>"> 3 Magazzino</div></a>
        <a href="<?=PATH?>utenti.php"><div class="menuItem <?=$menu==5?'menuItemSelected':''?>">5 Utenti</div></a>
        <a href="<?=PATH?>impostazioni.php"><div class="menuItem <?=$menu==6?'menuItemSelected':''?>"> 6 Impostazioni</div></a>
        <?php
    }
    
    dove menuItemSelected è una classe css che colora il div in modo diverso
    
    >```
    
    ok adesso provo questo metodo e ti faccio sapere