- Home
- Categorie
- Coding e Sistemistica
- Coding
- Menù dinamico... aiuto!
-
in parole di codice cosa dovrei scrivere? :bho:
-
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.
-
Ma in questo modo non si colorerebbe tutto il menu e non solo la voce blog (in caso contrario ho preso un abbaglio..)?
-
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?
-
@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?
-
Secondo me si colora tutto il menu in questo modo, però chiedo conferma anche a MiWebDesign, visto che il codice è stato scritto da lui.
-
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.
-
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>
-
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.
-
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
-
@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****
-
@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