sviluppo:proggridalbero
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| sviluppo:proggridalbero [2012/10/25 14:06] – [menLib] a.mucci | sviluppo:proggridalbero [2024/10/15 09:45] (versione attuale) – modifica esterna 127.0.0.1 | ||
|---|---|---|---|
| Linea 5: | Linea 5: | ||
| * [[grid_albero# | * [[grid_albero# | ||
| * [[grid_albero# | * [[grid_albero# | ||
| - | * [[grid_albero#Funzione GetMenu|Funzione GetMenu]] | + | * [[proggridalbero#Funzione GetMenu|Funzione GetMenu]] |
| - | * [[grid_albero#Funzine | + | * [[proggridalbero#Funzione |
| \\ | \\ | ||
| Linea 15: | Linea 15: | ||
| Come abbiamo già visto il treeGridModel utilizzato è quello Adjacency.\\ | Come abbiamo già visto il treeGridModel utilizzato è quello Adjacency.\\ | ||
| - | E' importante definire, nella parte di programmazione, | + | E' importante definire, nella parte di programmazione, |
| Le possibili configurazioni sono: | Le possibili configurazioni sono: | ||
| * **Level :** Che assume valori integer, e indica il livello di profondità | * **Level :** Che assume valori integer, e indica il livello di profondità | ||
| Linea 56: | Linea 56: | ||
| ------ | ------ | ||
| \\ | \\ | ||
| - | === menLib === | + | === Libreria: |
| Nella libreria menLib troveremo chiaramente molte funzioni, ma ce ne interessano 2 in particolare: | Nella libreria menLib troveremo chiaramente molte funzioni, ma ce ne interessano 2 in particolare: | ||
| - | * [[progridalbero#Funzione getMenu|Funzione getMenu]] | + | * [[proggridalbero#Funzione getMenu|Funzione getMenu]] |
| - | * [[progridalbero#Funzione caricaTreeLegami|Funzione caricaTreeLegami]] | + | * [[proggridalbero#Funzione caricaTreeLegami|Funzione caricaTreeLegami]] |
| \\ | \\ | ||
| == Funzione getMenu == | == Funzione getMenu == | ||
| - | \\ | ||
| - | Nella funzione getMenu possiamo notare che: | ||
| - | $inc viene settato a 0\\ | ||
| - | Viene dichiarato l' | ||
| - | In questo caso avremo nell' | ||
| - | * [0] | ||
| - | * ↳ INDICE = 0 | ||
| - | |||
| - | **Codice nella " | ||
| < | < | ||
| Linea 79: | Linea 70: | ||
| $albero[$inc][' | $albero[$inc][' | ||
| </ | </ | ||
| - | Successivamente dovremo impostare alcuni campi obbligatori: | + | \\ |
| + | Nella funzione getMenu possiamo notare che:\\ | ||
| + | **$inc** viene settato a **0**\\ | ||
| + | Viene dichiarato l' | ||
| + | In questo caso avremo nell' | ||
| + | * [0] | ||
| + | * ↳ INDICE = 0 | ||
| + | |||
| + | \\ | ||
| + | \\ | ||
| + | Successivamente dovremo impostare alcuni campi obbligatori: | ||
| \\ | \\ | ||
| Linea 92: | Linea 93: | ||
| $albero[$inc][' | $albero[$inc][' | ||
| </ | </ | ||
| - | E successivamente | + | Dopo di che possono essere impostatati anche gli altri campi all' |
| \\ | \\ | ||
| < | < | ||
| Linea 102: | Linea 103: | ||
| $albero[$inc][' | $albero[$inc][' | ||
| $albero[$inc][' | $albero[$inc][' | ||
| - | $save_count = count($albero); | + | $save_count = count($albero); |
| - | $albero = $this-> | + | </code> |
| - | if ($save_count == count($albero)) { // Nel caso in cui il $save_count sia uguale al $count($albero) significa che non ci sono sotto livelli o foglie e quindi viene impostato come foglia. | + | Alla fine dell' |
| - | $albero[$inc][' | + | La variabile **$save_count** viene quindi settata con il conteggio totale delle righe in **$albero**, |
| + | \\ | ||
| + | A questo punto ci servirà richiamare un' | ||
| + | < | ||
| + | $albero = $this-> | ||
| + | if ($save_count == count($albero)) { | ||
| + | $albero[$inc][' | ||
| } | } | ||
| return $albero; | return $albero; | ||
| - | } | + | } |
| - | | + | |
| </ | </ | ||
| - | ==Funzine | + | In questo esempio possiamo notare che nell' |
| + | * al campo **$level** assegna il valore 1 (1 perchè in questo esempio è il livello successivo al primo parent (0), ma è possibile inserire anche un autoincrementazione ) | ||
| + | * al campo **$parent** assegna il valore **$inc,** ($inc perchè vi è contenuto il valore del parent iniziale, che in questo caso è 0) | ||
| \\ | \\ | ||
| - | **Codice nella "menLib" | + | La condizione ci serve per capire se abbiamo un risultato dalla funzione. Infatti potrebbe essere che non ci sia nessun sottolivello e che quindi il primo livelo (0 in questo caso) sia solo una foglia, viene quindi impostato in isLeaf = True.\\ |
| + | |||
| + | \\ | ||
| + | \\ | ||
| + | |||
| + | ==Funzione caricaTreeLegami== | ||
| + | La funzione caricaTreeLegami è una funzione ricorsiva che: | ||
| + | - ispeziona un gruppo di dati, | ||
| + | - scorre la tabella estratta, | ||
| + | - si ripete se trova altri sottolivelli. | ||
| + | |||
| + | In breve stabilisce quali record nell' | ||
| < | < | ||
| public function caricaTreeLegami($chiave, | public function caricaTreeLegami($chiave, | ||
| Linea 127: | Linea 147: | ||
| continue; | continue; | ||
| } | } | ||
| + | </ | ||
| + | In questa prima parte di codice, possiamo notare un primo controllo: **if ($level == 10)**, per evitare che la ricorrenza avvenga all' | ||
| + | \\ | ||
| + | In questo esempio si vedono chiaramente anche una **SELECT** e un foreach.\\ | ||
| + | All' | ||
| + | Nell' | ||
| + | \\ | ||
| + | All' | ||
| + | \\ | ||
| + | \\ | ||
| + | < | ||
| + | ..... | ||
| + | continue; | ||
| + | } | ||
| $inc = count($albero); | $inc = count($albero); | ||
| $albero[$inc] = $Ita_puntimenu_rec; | $albero[$inc] = $Ita_puntimenu_rec; | ||
| - | $albero[$inc][' | + | $albero[$inc][' |
| $albero[$inc][' | $albero[$inc][' | ||
| $albero[$inc][' | $albero[$inc][' | ||
| Linea 136: | Linea 169: | ||
| $albero[$inc][' | $albero[$inc][' | ||
| $albero[$inc][' | $albero[$inc][' | ||
| - | + | </ | |
| - | $sql = " | + | Possiamo notare che la variabile **$inc** |
| - | $Ita_menu_giu_rec = ItaDB:: | + | \\ |
| + | Successivamente, | ||
| + | < | ||
| + | | ||
| + | $albero[$inc][' | ||
| + | |||
| + | if ($Ita_puntimenu_rec[' | ||
| + | $albero[$inc][' | ||
| + | |||
| + | | ||
| + | $Ita_menu_giu_rec = ItaDB:: | ||
| + | $me_id = $Ita_menu_giu_rec[' | ||
| + | |||
| + | </ | ||
| + | Nel caso in cui si tratti di un **Menu**, possiamo subito notare l' | ||
| + | E' inoltre presente una **Select**, che assegnerà alla variabile $me_id il valore **' | ||
| + | \\ | ||
| + | Dopo di che verrà salvato il conteggio totale in **$save_count** dei record contenuti in **$albero** e la funzione avrà un " | ||
| + | < | ||
| + | .... | ||
| $me_id = $Ita_menu_giu_rec[' | $me_id = $Ita_menu_giu_rec[' | ||
| - | |||
| $save_count = count($albero); | $save_count = count($albero); | ||
| $albero = $this-> | $albero = $this-> | ||
| - | if ($save_count == count($albero)) { // Fa riferimento a sestessa incrementando però il level di 1. (Fino a che non arriverà a 10, come da controllo impostata all' | + | if ($save_count == count($albero)) { |
| - | $albero[$inc][' | + | |
| - | } else { | + | |
| - | if (!$filtro) { | + | |
| - | $albero[$inc][' | + | |
| - | } | + | |
| } | } | ||
| } | } | ||
| Linea 157: | Linea 204: | ||
| } | } | ||
| </ | </ | ||
| + | Possiamo notare che nell' | ||
| + | \\ | ||
| + | * alla variabile **$chiave** viene assegnato il valore **$me_id** | ||
| + | * la variabile **$level** viene incrementata di **1** | ||
| + | * e alla variabile **$parent** viene assegnato il valore contenuto in **$inc** | ||
| + | |||
| + | Viene inoltre riutilizzata la condizione | ||
| + | |||
| + | Infine vi è il ritorno di $albero : **return $albero;** | ||
| + | |||
| + | Per concludere: | ||
| + | < | ||
| + | ..... | ||
| + | $this-> | ||
| + | $arr = array(' | ||
| + | ' | ||
| + | |||
| + | $griglia = new TableView($this-> | ||
| + | $griglia-> | ||
| + | $griglia-> | ||
| + | .... | ||
| + | </ | ||
| + | |||
| + | **tree** a questo punto contiene tutto il nostro albero.\\ | ||
| + | Come è già stato detto in precedenza nel Generetor il nostro elemento è stato definito treeGrid, e attraverso la selezione del ' | ||
| + | |||
| + | {{counter}} visualizzazioni. | ||
sviluppo/proggridalbero.1351173972.txt.gz · Ultima modifica: (modifica esterna)
