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: 2018/03/19 10:45 (modifica esterna)