Newsgroup: it.comp.www.php
Titolo: problema menu

Ciao a tutti, ho un problema che non riesco a risolvere (penso sia 
banale, ma...). Si tratta di un piccolo sito, nulla di che.
Il sito ha un menu verticale che dovrebbe essere in qualche maniera 
dinamico. Mi spiego meglio:
ci sono alcune voci "fisse" che NON aprono sottomenu ed alcune voci che 
aprono sottomenu.
Per cui ad esempio:
Home: non ha sottomenu
Chi siamo: non ha sottomenu
Prodotti: HA un sottomenu di 4 voci
Altro: non ha un sottomenu
Cosa dovrebbe succedere:
quando si è il home, il sottomenu della voce prodotti deve apparire 
"chiuso" (e le 4 voci non devono essere visualizzate). Quando invece si 
è in prodotti, il menu deve essere composto da più voci, quelle che 
rimandano alle altre singole sezioni e le 4 sottovoci. Come fare?
Ho ipotizzato una struttura del genere ma poi mi sono perso:
$menu=array(
	"Home"=>array("home",0),
	"Chi siamo"=>array("chi_siamo",0),
	"Prodotti"=>array("prodotti",1),
	"anfore" => array("anfore",1),
	"ceramiche" => array("ceramiche",1),
	"mattonelle" => array("mattonelle",1),
	"argille" => array("argille",1),
	"Altra merce" => array("altra",0),
	"Contatti" => array("contatti",0)
	);
dove con "home" intendevo indicare una variabile relativa alla sezione 
(&sect=home) e con 0 e 1 lo stato chiuso/aperto del menu. All'atto 
pratico, però, non ne vengo a capo e non so come potrei ciclare sui dati 
messi in questa maniera. Qualche suggerimento?
Grazie!!

 messi in questa maniera. Qualche suggerimento?
Secondo me quella struttura non ha molto perché non è gerarchica, quegli 
1 ti aiutano a capire solo a se devi stampare il menu ma guardando solo 
loro non sai quale è la voce di menu e quali i sottomenu.

 loro non sai quale è la voce di menu e quali i sottomenu.
Ciao, convinto che nessuno mi avrebbe risposto per la banalità della 
cosa, mi sono poi avviato per questa strada:
// struttura menu
$v3=array(
		"home"=>array("home page",0,"main"),
		"proposta"=>array("la proposta",0,"main"),
		"prodotti"=>array("i prodotti",1,"main"),
		"argille"=>array("le argille",1,""),
		"anfore" =>array("le anfore",1,""),
		"pagliuzze" =>array("le pagliuzze",1,""),
		"ceramiche" =>array("le ceramiche",1,""),
		"calendario" =>array("il calendario",0,"main"),
		"contatti" => array("contatti",0,"main")
);
// simulo var in $_GET . test 1
$sect = "home";
// . test 2
// $sect = "prodotti";
// distinguo le voci di menu relazionate tra loro con un numero
// in questo caso il menu è breve e ha un solo blocco di sotto-voci 
(identificato da 1)
$is_open = $v3[$sect][1];
// con "main" identifico una voce principale che deve essere comunque 
sempre presente
// ciclo
foreach($v3 as $key=>$value){
if(($v3[$key][1]==$is_open)||($v3[$key][2]=="main")){
echo $key." - ".$value[0]."<br>";
}
}
Grazie comunque per la grande disponibilità!
Ciao!

         );
La strada è quella giusta e per evitare di insozzare la URL con
accozzaglie di parametri potresti fare un controllo centralizzato
sull'url, della serie:
$menu=CaricaMenu();      // Inizializzazione del menù con tutti i
valori a 0.
if ($_SERVER['REQUEST_URI']='pagina1') $menu['Home']=1;
if ($_SERVER['REQUEST_URI']='pagina2') $menu['Chi siamo']=1;
if ($_SERVER['REQUEST_URI']='pagina3') $menu['Prodotti']=1;
if ($_SERVER['REQUEST_URI']='pagina4') $menu['anfore']=1;
if ($_SERVER['REQUEST_URI']='pagina5') $menu['ceramiche']=1;
...
Fammi sapere.
Ciao,
    Fabrizio
=== 
http://www.negusweb.it
 ===

 
non ho capito bene cosa fai, di certo per mia ignoranza:
io (vedi secondo post) non uso 0 (per chiuso) e 1 (per aperto):
presumo (se il menu si dovesse allungare un giorno, anche se dubito!) 
che ci sarà un 2, un 3 ecc.ecc. e che il clic apra di volta in volta una 
unica sezione.
Ciao (grazie!)!

 unica sezione.
Perchè non usi 0 per chiuso e 1 per aperto?

 
0 rappresenta un blocco di voci "main", 1 può rappresentare un altro 
blocco (come prodotti, con 4 sottovoci univocamente identificate e messe 
in relazione tra loro grazie a 1), e così via.
Non capisco come usi quel REQUEST_URI.
E un'altra cosa che non capisco -ne sento parlare ma non trovo esempi 
pratici- è come realizzare siti che non usino parametri nell'URL...
Ciao!!

 pratici- è come realizzare siti che non usino parametri nell'URL...
Parli di riscrittura di URL ? Fammi un esempio specifico.


 Parli di riscrittura di URL ? Fammi un esempio specifico.
parlo del fatto che qualche volta sento parlare sviluppatori PHP 
avanzati che dicono cose come "c'è ancora gente che fa i siti passando 
parametri nell'URL". Ora, non so come sia nata questa corrente di 
pensiero e da cosa sia giustificata, ma evidentemente c'è un modo per 
"fare i siti" senza passare parametri, che forse vengono considerati una 
cattiva pratica
Grazie!!

 cattiva pratica
Beh, si tratta sicuramente di casi specifici, però vorrei vedere come
entrare in
una specifica "scheda prodotto" da una lista di prodotti senza il
classico invio
tramite GET. Certo ci sarebbe il post ... ma alla fine, cosa
cambierebbe?


 cattiva pratica
Beh, si tratta sicuramente di casi specifici, però vorrei vedere come
entrare in
una specifica "scheda prodotto" da una lista di prodotti senza il
classico invio
tramite GET. Certo ci sarebbe il post ... ma alla fine, cosa
cambierebbe?
Ciao,


 cambierebbe?
nulla, direi. Ma io non sono un utente cosě avanzato e forse non riesco 
a centrare il problema