Cerca su HostingTalk.it(puoi inserire qualsiasi parola, termine, azienda, espressione). Scrivi e premi INVIO!
Loading

+ Rispondi alla Discussione
Risultati da 1 a 13 di 13
  1. #1
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    [php] astrazione di un menu

    ciao belli
    sto cercando di astrarre un menu ad infiniti livelli e mi chiedevo come fareste voi geniacci

    array n-dimensionale ok

    Codice PHP:
    $ar=array('Home'=>'index.php','Section1'=>'Section1.php'

    ma il rapporto pagina genitore - pagina figlio come lo implementereste?

    poi mi toccherà scrivere la funzione iterativa per creare quello che mi serve, ma vabbè

    ha senso fare una cosa così?

    Codice PHP:
    array('Home'=>'index.php','Section1'=>'section1.php','Section2'=>array('Page1'=>'page1.php','Page2'=>'page2.php')) 

    e se volessi avere una pagina anche per Section2?

    mi piacerebbe avere una struttura flessibile dove sia possibile avere sia una sezione che corrisponde ad una pagina che una che invece ha solo figli ( nel caso vado al primo figlio )



  2. #2
    Webhosting Guru L'avatar di EvolutionCrazy
    Data Registrazione
    May 2006
    Località
    Vicenza
    Messaggi
    2,850

    Re: [php] astrazione di un menu

    non so se ho capito bene qual'è il problema che vuoi risolvere.... semplificare il piu' possibile per l'utente (quello che decide la struttura dell'albero) e non farlo diventar matto con le sezioni con sottosezioni & pagine?

    1 entry per pagina... per la quale specifichi il padre.

    pagina2 => padrePagina2
    pagina3 => pagina2
    pagina4 => padrePagina2
    pagina5 => _root_
    pagina6 => pagina2

    e via cosi'... array bidimensionale, indice "pagina2"/"pagina3" etc etc etc

    l'albero poi lo costruisci al momento (computazionalmente complesso) ma dato che l'albero cambia rarissimamente lo metti in cache dopo averlo generato e lo aggiorni solo quando cambi qualcosa...

    trovo piu' naturale andare al contrario (partire dal figlio (la pagina richiesta via browser)) e risalire fino alla radice

    viceversa come faresti? io chiedo la pagina X... cerchi per tutto l'array la pagina e poi mi costruisci l'albero?
    oppure ti metti sotto con liste apposite, bubble sort etc etc etc?
    cliente : Seflow, Leaseweb, First-Colo, OVH, Hetzner
    ex-cliente: tutti gli altri, o quasi.

  3. #3
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    Re: [php] astrazione di un menu

    buone domande!
    la mia intenzione è la seguente: avere per tutto un sito uno o più menu, quindi un array che descrive la struttura del sito e da cui generare poi le navigazioni ( menu principale, secondario, briciole di pane eccetera... )

    l'array in realtà può essere anche estratto da un db ( vedi qui ) ma queste son cosucce che aggiungo in seguito

    nel caso specifico poi in realtà genero un XML che quindi sarà templatizzabile ( uso XSL )

    per quanto riguarda la cache non ti preoccupare, l'ho già scritta

  4. #4
    Webhosting Guru L'avatar di EvolutionCrazy
    Data Registrazione
    May 2006
    Località
    Vicenza
    Messaggi
    2,850

    Re: [php] astrazione di un menu

    Beh dipende da quanto piccolo è il menu...

    io stavo considerando un "menu" da generare per esempio per uno shop da 5000 categorie (foglie)... a queste aggiungi le "macro categorie"...

    in tale situazione era improponibile l'array e anziche' costruire il menu per intero è piu' leggero fare al piu' 4(la profondità massima) query ad ogni generazione (una volta sola... le volte successive prenderlo dalla cache... una query sola o un readfile() :P ) partendo appunto dalla foglia fino ad arrivare alla radice...
    cliente : Seflow, Leaseweb, First-Colo, OVH, Hetzner
    ex-cliente: tutti gli altri, o quasi.

  5. #5
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    Re: [php] astrazione di un menu

    beh 5000 categorie in effetti son tantissime... torniamo sul pianeta terra

    per come la vedo io poi le query possono essere ZERO, perchè volendo parto da un xml statico... ma a me interessava trovare l'algoritmo per generare appunto l'xml e prima devo pensare a come strutturare l'array

    cioè devo avere una rappresentazione in PHP della questione, una primitiva PHP da poter maneggiare senza problemi

  6. #6
    HT Member
    Data Registrazione
    Oct 2008
    Messaggi
    33

    Re: [php] astrazione di un menu

    puoi strutturare così l'array:

    Entry top-level (solo categoria in pratica)
    Categoria madre: nessuno
    Nome: Quello che vuoi
    Link: <nessuno>

    Entry mid-level (categoria che può avere un link ma essere anche submenu)
    Categoria madre: menu a cascata precedente (=> Nome)
    Nome: anche qui quello che vuoi
    Link: se vuoi, se no <nessuno>

    Entry low-level (solo entry di un submenu)
    Categoria madre: menu a cascata precedente (=> Nome)
    Nome: Asdrubale & Annibale
    Link: paginachevuoi.php?content=blablabla

    P.S.
    per l'XML ti consiglio di usare CDATA

  7. #7
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    Re: [php] astrazione di un menu

    tempo fa avevo fatto un menu generato al volo da xml
    http://www.andreapaiola.it/provaxmlmenu/prova.php

    l'xml di partenza è questo
    Codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <menu>
        <voce testo="Prima sezione" url="http://www.andreapaiola.it/provaxmlmenu/sez1.php" descrizione="sezione del sito in cui si parla di questo e di quest'altro.">
            <sottovoce testo="Prima pagina" url="http://www.andreapaiola.it/provaxmlmenu/sez1pag1.php" descrizione="prima pagina della prima sezione del sito." />
            <sottovoce testo="Seconda pagina" url="http://www.andreapaiola.it/provaxmlmenu/sez1pag2.php" descrizione="seconda pagina della prima sezione del sito" />
        </voce>
        <voce testo="Seconda sezione" url="http://www.andreapaiola.it/provaxmlmenu/sez2.php" descrizione="seconda sezione del sito">
            <sottovoce testo="pagina1" url="http://www.andreapaiola.it/provaxmlmenu/sez2pag1.php" descrizione="prima pagina della seconda sezione del sito" />
            <sottovoce testo="pagina 2" url="http://www.andreapaiola.it/provaxmlmenu/sez2pag2.php" descrizione="seconda pagina sezione 2" />
        </voce>
        <voce testo="Terza sezione" url="http://www.andreapaiola.it/provaxmlmenu/sez3.php" descrizione="Sezione n° 3 del sito">
            <sottovoce testo="pagina 1" url="http://www.andreapaiola.it/provaxmlmenu/sez3pag1.php" descrizione="prima pagina della 3° sezione del sito" />
            <sottovoce testo="pag2" url="http://www.andreapaiola.it/provaxmlmenu/sez3pag2.php" descrizione="pagina 2 sez 3" />
            <sottovoce testo="pag3" url="http://www.andreapaiola.it/provaxmlmenu/sez3pag3.php" descrizione="pagina 3 sez 3" />
        </voce>
    </menu>
    facile da capire e modificare

    purtroppo funzionava solo fino al terzo livello ( per carità son pochi i siti che vanno oltre il terzo... )

  8. #8
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    Re: [php] astrazione di un menu

    Citazione Originariamente Scritto da elegos Visualizza Messaggio
    puoi strutturare così l'array:

    Entry top-level (solo categoria in pratica)
    Categoria madre: nessuno
    Nome: Quello che vuoi
    Link: <nessuno>

    Entry mid-level (categoria che può avere un link ma essere anche submenu)
    Categoria madre: menu a cascata precedente (=> Nome)
    Nome: anche qui quello che vuoi
    Link: se vuoi, se no <nessuno>

    Entry low-level (solo entry di un submenu)
    Categoria madre: menu a cascata precedente (=> Nome)
    Nome: Asdrubale & Annibale
    Link: paginachevuoi.php?content=blablabla

    P.S.
    per l'XML ti consiglio di usare CDATA
    purtroppo non ho capito cosa intendi... mi faresti un esempio di array?
    per quanto riguarda CDATA cosa intendi?

  9. #9
    HT Member
    Data Registrazione
    Oct 2008
    Messaggi
    33

    Re: [php] astrazione di un menu

    Allora, mettiamo caso che tu voglia generare una lista dei menu dinamica, fai così:

    Codice:
    <?php
    $i = 0;
    $menu[$i++] = array("Madre" => "", "Nome" => "HomePage", "Link" => "?c=home");
    $menu[$i++] = array("Madre" => "", "Nome" => "Info", "Link" => "");
    $menu[$i++] = array("Madre" => "Info", "Nome" => "Contatti", "Link" => "?c=contatti");
    $menu[$i++] = array("Madre" => "Info", "Nome" => "Submenu", "Link" => "");
    $menu[$i++] = array("Madre" => "Submenu", "Nome" => "Subelem", "Link" => "?c=Subelem");
    In questo modo hai la possibilità di indentare quanto vuoi submenu

  10. #10
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    Re: [php] astrazione di un menu

    ah ok quindi non avresti più array multidimensionali ma appiattisci tutto su una dimensione... interessante... ci penso su e vedo cosa conviene... altri spunti?

    primo dubbio: così non è più difficile da trasformare in xml?

  11. #11
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    Re: [php] astrazione di un menu

    ok allora rinuncio all'avere in PHP la struttura del sito e mi appoggio a XML, come avevo fatto anni fa
    a sto punto allora penso alla funzione che dal db mi crea l'xml... ok!

  12. #12
    HT Member
    Data Registrazione
    Oct 2008
    Messaggi
    33

    Re: [php] astrazione di un menu

    Andrea ma cosa non va nel mio sistema? Così io ho realizzato un menu multidimensionale, tenendo la matrice monodimensionale... hai forse dei problemi nell'implementare il sistema?

  13. #13
    Webhosting Guru L'avatar di andrea.paiola
    Data Registrazione
    Jul 2006
    Località
    Torino - Milano
    Messaggi
    4,374

    Re: [php] astrazione di un menu

    mi pare molto complesso da trasformare in xml... o sbaglio?

Discussioni Simili

  1. Scroll Images tipo "Dock Menu"
    Di w_t nel forum Javascript & AJAX
    Risposte: 3
    Ultimo Messaggio: 06-11-2009, 18:37
  2. [php] astrazione di un menu
    Di andrea.paiola nel forum Io Programmo
    Risposte: 12
    Ultimo Messaggio: 27-10-2008, 17:48
  3. Menu con tabs che non funziona su IE
    Di etr nel forum L'OTInformatico
    Risposte: 3
    Ultimo Messaggio: 17-06-2007, 18:36

Informazioni Discussione

Utenti che Stanno Visualizzando Questa Discussione

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Tag per Questa Discussione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi