Supporto volontario e collaborativo per Joomla!® in italiano

Gestione di database relazionali con Fabrik

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
Associazione uno a molti

Fabrik è un componente estremamente flessibile orientato allo sviluppo di applicazioni web anche molto complesse. Consente fra l’altro di creare moduli (form) con specifici campi per l'inserimento dei dati in mappe, calendari, charts etc. e presenta altre svariate funzioni attivabili utilizzando i numerosi plugin disponibili.
Permette in particolare di effettuare, in modo estremamente efficace, la gestione di uno strumento molto utilizzato nello sviluppo di applicazioni web come le associazioni fra le tabelle dei database relazionali.
In questo articolo si sviluppa appunto un semplice esempio che prende in esame due tabelle di un database correlate tra loro da un'associazione uno a molti.

Premessa

La base di questo lavoro è contenuto nel documento in inglese User Manual for Fabrik Master Detail example (Joomla 3.2 version). Viene considerato il caso dei dati relativi a studenti che frequentano classi scolastiche. Ogni studente frequenta una sola classe.
Nel sito del produttore, oltre al pacchetto e altri estensioni da installare in Joomla, sono disponibili forum, blog, tutorial, filmati etc..

La creazione delle Liste

Le Liste sono degli elenchi contenente alcuni Elementi, che corrispondono ai campi delle tabelle del database, a loro volta corrispondenti alle stesse Liste.

Una volta inserita una nuova Lista, Fabrik rende disponibile automaticamente la Tabella e il Modulo corrispondenti e anche un Gruppo col nome della lista. Ogni Elemento deve far parte di un Gruppo ma si possono creare più Gruppi in una Lista in relazione a specifiche esigenze.

Nella fattispecie si creeranno due Liste: Classi e Studenti. Ad associazione avvenuta la vista della prima (detta principale) conterrà anche gli elementi della seconda (detta di dettaglio).

Creazione della Lista Classe

Andando in Componenti→Fabrik→ Liste compare la videata che per la gestione delle Liste.

Figura 1 Creazione della  lista Classi

Da quì è possibile creare una nuova Lista cliccando su 'Nuovo'. Si apre la seguente finestra dove poter inserire i relativi dati:

Nel tab Dettagli:inseriamo: Etichetta 'Classi', Introduzione:'Elenco delle Classi'.

Figura 2 Inserimento dettagli della Lista Classi 

Nel tab Data si inseriscono i dati relativi al collegamento col database. In Connessione lasciare ''site database' (è però anche possibile riferirsi ad un db esterno) In nome Tabella inserire il nome della tabella che si intende creare (senza prefisso): nel nostro caso 'classi'.

Figure 3 Assegnamento dei dettagli relativi ai dati della lista Classi

Aprendo il tab Pubblicazione a sinistra si ha la schermata seguente dove lo stato deve essere 'Pubblicato'.

 Figura 4 Pubblicazione della Lista Classi

Clicchiamo sul tab  Access nella finestra che compare inseriamo i corretti livello di accesso per le attività proposte.

Figure 5 Configurazione dei livelli di Accesso per la Lista Classi

Infine salvare.

Creazione della Lista Studenti

In modo del tutto analogo viene creata La lista Studenti. Di seguito viene visualizzato l'elenco delle Liste create.

Figura 6 Le liste create
Aggiungere gli Elementi alla Liste

Per aggiungere Elementi alle Lista Classe selezionare Elementi → Nuovo: vengono visualizzati gli elementi di default (chiave primaria e data di creazione) che Fabrik crea all'atto dell'inserimento delle nuove Liste

Figura 7 Vista degli Elementi  delle Liste appena create

Si possono filtrare i dati per Lista per una migliore chiarezza di lettura.

Figura 8 Elementi filtrati per la Lista Classi

Per inserire un nuovo Elemento si clicca su 'Nuovo'.

Inseriamo, per questo elemento, Nome: ‘classe’, Etichetta: Classe’, plugin: field (corrispondente nel form ad un campo di tipo text)

In opzioni fissiamo lunghezza massima: 20

Figura 9 Creazione nuovo Elemento

E' importante selezionare il tab 'Settaggi vista lista' nella sidebar scegliendo l’opzione ‘Si’ in Mostra in lista.

Figura 10 Settaggi Vista Lista

Dopo il  Click su 'Salva e Chiudi' viene visualizzato l'Elementi inserito:

Figura 11 Visualizzazione Elementi della Lista Classi col nuovo Elemento ‘Classe’
Aggiungere gli Elementi alle Lista Studenti

Il procedimento è perfettamente analogo a quello seguito per la Lista Classi. Aggiungiamo un Elemento Nome.

Inserimento Elemento Join (associazione) fra la Lista Classi e la Lista Studenti

Al fine di predisporre la relazione fra la Lista Studenti e la Lista Classi occorre aggiungere un Elemento di join nella Lista studenti  inserendo , con le stesse modalità già viste, i seguenti dati nei dettagli: Name:Etichetta:'Classe’, Nome ‘Classe id’ , tipo di elemento: ‘database join’.

Figura 12 Inserimento elemento di join classe_id

Nel tab data  inserire in: Render as ‘in Lista a cascata', Connessione 'site database', Tabella 'classi' , Valore:  'id' e etichetta ‘classe’ .

Figura 13 Inserimento dettaglio dei dati Elemento di join classe_id

Pubblichiamo l'elemento e salviamo e chiudiamo. Di seguito il riepilogo degli Elementi inseriti:

Figura 14 Riepilogo Elementi inseriti
 Aggiungere dati alla lista Classe

Per aggiungere i dati alle Liste occorre visualizzarle (cfr. Figura 6) e cliccare sul campo 'Vedi dati' della lista interessata. Iniziamo con la lista Classe.

Si apre il modulo per l'inserimento dei dati. Inseriamo Classe1

Figura 15 inserimento dati nella lista Classi

 Salvando si visualizza il dato inserito e il link 'Aggiungi'per inserirne altri.

Figura 16 Dato inserito nella Lista Classi

Con identico procedimento per la Lista Studenti inseriamo il nome Rossi appartenente alla Classe 1 

Figura 17 Inserimento nome Studente nella Classe 1

Salvando si visualizza il dato inserito nella Lista Studenti:


Figura 18 Dato inserito nella Lista Studenti
 Join fra Lista Classe e Lista Studenti

Abbiamo già creato l'elemento di Join nella Lista Studenti ma per realizzarlo occorre creare un'apposito gruppo. Dall'elenco delle Liste (Figura 6) clicchiamo su Classe e poi, nella figura che appare, selezioniamo il tab data a sinistra e poi il tab Unioni in alto.


Figura 19 Aggiungere Join

 Cliccando sul tasto 'Aggiungi' nella finestra che appare inseriamo: tipo di unione:'left'; Da:'classi'; A:'Studenti';Dalla colonna:'id', Alla colonna:'classe_id'.

Figura 20 Inserire dati per il join

 Visualizzando adesso l'elenco dei Gruppi ne troviamo uno nuovo: quello di join 'Classi- [studenti]'

Figura 21 Elenco dei gruppi aggiornato con quello di join

 I dati della lista Classe si presentano ora come di seguito:

Figura 22 Dato della Lista Classe dopo il join
Funzione ripetibilità dati nella Classe di join

Cliccando sul numero di id nel nostro caso 1: si visualizza il corrispondente modulo di inserimento dati:

Figura 23 modulo del record

Per rendere funzionale l'inserimento dei dati è necessario rendere ripetibile la loro visualizzazione

Visualizziamo l'elenco dei gruppi di Figura 22 e apriamo quello di Classi-[studenti]

Figura 24 Modifica Gruppo di join Classi-[studenti]

 Clicchiamo sul tab Ripeti e selezioniamo Ripetibile 'Si'

Figura 25 Inserimento funzione ripetibilità al gruppo Classi-[studenti]

 Se rivisualizziamo il modulo di Figura 23 notiamo che sono comparse le icone per inserire o eliminare dati

Figura 26 modulo inserimento dati con la funzione ripetibile

 Inseriamo un altro dato

Figura 27 Inserimento nuovo dato
 Rimozione link dall'Elemento id della Lista Classi  al modulo inserimento dati

Nella Figura 22, che riporta l'elenco delle Liste, dopo aver effettuato il join il numero identificativo dell'id è un link che porta al modulo di inserimento dati (Figura 23).

Ai fini del desiderato risultato finale, in cui non dovranno comparire i campi id, occorre rimuovere questo link e assegnarlo successivamente ad un altro Elemento (per es. Nome).

Visualizziamo gli elementi del gruppo Classe-[studenti]:Entriamo nei dettagli dell'elemento classe_id e spuntiamo 'Click to unlink and edit this element'

Figura 28 Dettaglio Elemento Classe.id del gruppo Classi-[studenti]

 Adesso il modulo inserimento dati si presenta con i due pulsanti per aggiungere o eliminare i dati. In figura sono stati aggiunti due nuovi record  Neri e Bianchi.

Figura 29 Modulo inserimento dati Lista Classi

 E l'elenco dei record della Lista Classi

 Figura 30 Elenco record della Lista Classi
Miglioramenti della visualizzazione delle Liste

La figura precedente evidenzia dei dati ridondanti.
Raggruppamento dei dati

Uno dei metodi per eliminarli è quello di applicare il raggruppamento degli stessi rispetto ad un valore della Lista. Il raggruppamento è spesso usato nei casi in cui si applica il join. Esso suddivide la Lista in dati raggruppati per un valore che nel nostro caso è la id della Lista Classe, ordinati per l'elemento Nome della Lista Studenti e con una etichetta che contrassegna il raggruppamento pari al valore recuperato del campo classe  appartenente alla Lista Classi, che è contrassegnato come {classi___classe} (con 3 undescore).

Figura 31 Raggruppamento dei dati

Rimozione dei dati ridondanti
Accediamo agli elementi del gruppo Classi-[studenti] e disabilitiamo nel check 'Mostra in lista' gli Elementi che non vogliamo mostrare

Figura 32 Disabilitazione di Mostra in Lista degli elementi da non mostrare

Il risultato è il seguente:

Figura 33 Visualizzazione della Lista dopo il raggruppamento e la disabilitazione di Mostra in Lista degli elementi dalla lista Classi da non mostrare

Occorre ancora nascondere gli Elementi associati con la Lista Classe. Visualizziamoli, selezioniamoli e nascondiamoli

Figura 34 nascondere elementi ridondanti associali alla Lista Classi

E questo è il risultato:

Figura 35 Visualizzazione Lista senza dati ridondanti
Personalizzare il link al modulo dei dettagli

Visualizziamo gli elementi del gruppo di join Classi-[studenti] e clicchiamo su 'nome'

Figura 36 Click su nome

Il link ci porta nei dettagli dove mettiamo la spunta su 'Click to unlink and edit this element'. Vengono visualizzati altri dati. Nel tab 'Settaggi vista lista' Settiamo a 'Si' alla voce Collegamento ai dettagli. Salviamo e chiudiamo.

Figura 37 click su unlink e abilitare Collegamento ai dettagli

Rivisualizziamo i dati e clicchiamo sul un nome di uno studente. 

Figura 38 Click su nome di studente

Al click sul nome si visualizza il form di modifica

Figura 39 Visualizzazione del form di modifica/aggiunta

La figura suddetta ci consente di inserire gli studenti ma non le classi. Per farlo è necessario rivisualizzare la lista dati di figura 38 e premere 'Aggiungi'; viene visualizzata la figura seguente dove è possibile inserire la Classe e lo Studente.  Salvare.

Figura 40 Nuova riga e dettagli aggiunti

Visualizziamo il risultato

Figura 41 Vista aggiornata principale-dettagli
Cambiare il template della visualizzazione del form

Se entriamo nei dettagli della lista Classi clicchiamo sul tab Disposizione si apre la seguente figura in cui si può personalizzare il template (nel ns. caso abbiamo inserito Template amministrazione 'bootstrap'):

Figura 42 Configurazione del layout
 Visualizzare la relazione fra le Liste principale e dettaglio da frontend

per la visualizzione della Liste realizzate in precedenza dal front end è necessario creare delle apposite voci di menu. Nel backend andiamo in Menu → Menu Principale → Voci di Menu→ Nuovo. In Dettagli Selezionare Titolo 'Lista Classi, Tipo di voce di menu 'List', Fabrik List 'Classi' e salvare.

Figura 43 Creazione Voce di menu Lista Classi

Cliccando dal front end sulla nuova voce di menu creata si apre la seguente videata:

Figura 44 Visualizzazione Lista Classi da front end

Cliccando sul nome di uno studente si apre il modulo di dettaglio

Figura 45 Modulo di dettaglio

 Si può creare un menu per visualizzare la Lista Studenti:

Figura 46 Vista Lista Studenti

La vilsualizzazione dei form relativi alle Liste create è possibile creando delle voci di menu di tipo Fabrik Form.

Figura 46 Vista Form Classi

CommentaCommenta questo articolo sul forum

Ho scritto e condiviso questo articolo su Joomla.it, fallo anche tu. Invia ora un nuovo articolo!
Angelo Cani
Alcune informazioni su di me:
Funzionario Enel in pensione sviluppa siti web con joomla e T3 Frameworks e siti e-commerce con Prestashop.


Ho anche scritto:
         ✔ diventa autore su Joomla.it

Ultima versione di Joomla!®

downloadVer. 3.8.1 Stabile Italiana
Data di rilascio: 04 Ottobre 2017
(leggi la notizia Demo online

Le migliori estensioni gratuite

Un elenco aggiornato con i link a più di 100 estensioni fra componenti, moduli e plugin gratuiti per Joomla! 3

Manuale in italiano

Manuale in italianoPer conoscere meglio Joomla!, le sue caratteristiche ed il metodo di utilizzo leggi il manuale tradotto in italiano.

Molto utili anche le risposte alle domande più frequenti: FAQ

Sicurezza del proprio sito Joomla!Leggi anche: Nozioni sulla sicurezza del proprio sito

Autori di articoli recenti

Invia un articolo!Scrivi un articolo su Joomla.it e ricevi i ricavi dalle pubblicità di Google Adsense!
Segui queste istruzioni, condividi e collabora con la community. L'elenco degli autori attivi sul sito.

Libri consigliati

Torna su

Joomla.it sui Social Network

JoomlaDay Italia

JoomlaDay

Newsletter

Inserisci qui la tua e.mail: