Guide e tutorial pratici per joomla e le sue estensioni
Guide e tutorial pratici per joomla e le sue estensioni

In questa guida vediamo come funziona questo interessante plug in che in pochi e semplici passi ci consente di creare una serie di select list collegate fra loro con un bellissimo effetto ajax.

Il plug in cascading dropdown (plg_fabrik_element_cascadingdropdown_3.4.3.zip) consente di ottenere una serie di voci dentro la dropdowlist in relazione a cosa è stato scelto nella dorpdown precedente.

Per chi è nuovo sull'utilizzo di Fabrik consiglio di leggere questo articolo "Creare una lista di dati ed un form per inserirli", sarà più semplice seguire la guida.

Per i neofiti una dropdown è uno di quei menù a tendina dove possiamo scegliere una opzione fra le tante (o più opzioni se è una multiselect). Vediamo 2 tipici esempi su dove potremmo applicare il plug in "cascading dropdown" di Fabrik:

  • il primo è la classica scelta a cascata di regioni/province/comuni, quindi scegliendo una regione (italiana) tra le 20, la successiva dropdowlist, quella per le province, ci proporrà solo le province di quella determinata regione, così nella successiva terza dropdown ci saranno proposti i comuni di quella determinata provincia.
  • Un altro esempio potrebbe essere marca auto/modello/allestimento: scegliendo la marca nella prima select, nella seconda troveremo solo quei modelli di auto fabbricati dalla marca scelta, mentre nella terza select troveremo i relativi allestimenti di quei modellli.

Visto gli esempi vediamo quali sono i prerequisiti per far funzionare il meccanismo di "lettura a cascata dei dati".

  1. Il primo prerequisito è quello di scaricare il plug in, infatti questo non è inserito fra quelli presenti nel pacchetto di installazione di Fabrik, i plug in "core", quindi portati in questa pagina www.fabrikar.com/download inserendo nella casella di ricerca "cascading dropdown" tenendo presente che in questo articolo stiamo parlando dell'ultima versione di Fabrik, ovvero la 3.4.3. Il plug in andrà successivamente installato sul vostro sito Joomla 3.x esattamente come si installerebbe qualsiasi altra estensione, poi dopo l'installazione portatevi nella gestione plug-in (di joomla) ed attivatelo. Adesso una nuove voce sarà presente all'interno degli elementi di Fabrik.
  2. Il secondo prerequisito è quello di inserire le tre tabelle con regioni, province e comuni nel vostro database, avendo come caratteristica i seguenti campi:
    Tabella Regioni - idRegione, nomeRegione
    Tabella Province - idProvincia, nomeProvincia e ksRegione (questa è la chiave secondaria per la regione)
    Tabella Comuni - idComune, nomeComune e ksProvincia (questa è la chiave secondaria per la provincia)
  3. Il terzo prerequisito sarà quello di creare una nuova lista degli elementi che dovranno essere visualizzati, questo ci consentirà di avere tutti gli elementi necessari al meccanismo e sopratutto ci consentirà di gestire quella lista per inserire, eliminare o correggere dei dati. In caso si faccia riferimento ai dati geografici, la lista sarà utile nel solo caso vi sia una aggiornamento di province e comuni in quanto raramente succede, mentre per le regioni sarà pressochè inutile a meno che non ci vengano restituite la corsica, l'Istria e la Dalmazia.
dropdown list acascata con Fabrik

Ricordate che per creare queste liste dovrete leggervi questo articolo "Creare una lista di dati ed un form per inserirli" se non l'avete ancora fatto approfittatene adesso.

Vediamo adesso come integrare nel vostro form i campi regione, provincia e comune:

Iniserite tre nuovi elementi nel vostro gruppo di liste e form chiamandoli regione_residenza, provincia_residenza e comune_residenza, per adesso come tipo di plug-in (tipo di campo) scegliete una textbox semplice "field".

fabrik plug in cascadingdropdown

Configuriamo l'elemento regione_residenza

L'elemento regione_residenza, è il primo delle tre select, possiamo definirlo un elemento "padre" in quanto le scelte successive deriveranno da questa prima scelta, quindi sarà l'unico elemento che avrà come tipo di campo o tipo di plug-in una semplice dropdow collegata alla tabella Regioni.

Per il collegamento alla tabella useremo il plug in "databasejoin", plug in preposto al collegamento con una tabella.

 fabrik per joomla cascadingdropdown

Mentre le impostazioni per questo plug on saranno:

  1. Render as: qui sceglieremo se desideriamo un elenco a cascata con scelta singola, un elemento a cascata con scelta multipla, una serie di radio button, una serie di checkbox o una casella di autocompletamento;
  2. Connessione: questa è la connessione al database, voglio ricordare che Fabrik può gestire i dati provenienti da più database diversi, ma con Fabrik in alcuni casi non potremo avere funzioni di join;
  3. Tabella: Scegliamo la tabella da dove prelevare i dati;
  4. Valore: Dovrà essere il valore corrispondente all'id della tabella nella maggior parte dei casi;
  5. Etichetta: Questo valore è ciò che dovremo vedere dentro la select, nel nostro caso il contenuto del campo nomeRegione.
fabrik cck per joomla cascadingdropdown

Configuriamo l'elemento provincia_residenza 

L'elemento provincia_residenza, è il secondo elemento delle tre select, e questo elemento dovrà visualizzare i nomi delle province in base alla regione scelta; se sceglieremo la regione Toscana, nella prima select, nella seconda vi dovremo trovare solo le province della regione Toscana.

Quindi per il collegamento alla tabella delle province useremo il plug in "cascadingdropdown".

 fabrik cck per joomla 3.5 cascadingdropdown

Mentre la sua configurazione sarà:

  1. Renderizza come: qui sceglieremo se desideriamo un elenco a cascata con scelta singola, un elemento a cascata con scelta multipla, una serie di radio button, una serie di checkbox o una casella di autocompletamento;
  2. Connessione: questa è la connessione al database, voglio ricordare che Fabrik può gestire i dati provenienti da più database diversi, ma con Fabrik in alcuni casi non potremo avere funzioni di join;
  3. List: Scegliamo la lista di fabrik da dove prelevare i dati;
  4. Id: Dovrà essere il valore corrispondente all'id della lista nella maggior parte dei casi;
  5. Label: Questo valore è ciò che dovremo vedere dentro la select, nel nostro caso il contenuto del campo nomeProvincia;
  6. Elemento di osservazione: dovrà essere il nome dell'elemento che dovrà essere osservato, nel nostro caso il campo "regione residenza";
  7. Chiave esterna: Questo dovrà essere il campo della tabella "province" che contiene la chiave secondaria (ksRegione), quando in questo campo ci sarà ad esempio il numero "10" che corrisponde al numero della chiave primaria nella tabella "regioni" alla regione "Marche", questo elemento ci farà visualizzare tutti le province che sono nel campo nomeProvincia dove il campo "ksRegione" corrisponde a "10" e quindi le province appartenenti alla regione Marche.
 fabrik cck per joomla 3.5 cascadingdropdown

Le impostazioni 5 e 6 dovranno essere effettuate nella tabs Watch

fabrik cck per joomla 3.5 cascadingdropdown

Configuriamo l'elemento comune_residenza

  1. Renderizza come: qui sceglieremo se desideriamo un elenco a cascata con scelta singola, un elemento a cascata con scelta multipla, una serie di radio button, una serie di checkbox o una casella di autocompletamento;
  2. Connessione: questa è la connessione al database;
  3. List: Scegliamo la lista di fabrik da dove prelevare i dati, nel nostro caso la lista comuni;
  4. Id: Dovrà essere il valore corrispondente all'id della lista;
  5. Label: Questo valore è ciò che dovremo vedere dentro la select, nel nostro caso il contenuto del campo nomeComune;
  6. Elemento di osservazione: dovrà essere il nome dell'elemento che dovrà essere osservato, nel nostro caso il campo "provincia residenza";
  7. Chiave esterna: Questo dovrà essere il campo della tabella "comuni" che contiene la chiave secondaria (ksProvincia);

Adesso che gli elementi sono stati configurati, questo quello che vedremo nel form:

fabrik esempio di drop down a cascata regioni province comuni

Questa la pagina ufficiale delle istruzioni per questo plug in in rigoroso inglese http://fabrikar.com/forums/index.php?wiki/cascading-dropdown-element/

Questo tutorial su fabrik termina qui, se avete dubbi postate sui commenti. Se volete potete offrirmi un caffè cliccando nel pulsante sottostante, oppure cliccate su uno dei banner pubblicitari.

offrimi un caffè

Commenti   

0 # pietro-s 2016-08-21 08:37
Grazie davvero, sto iniziando ad usare Fabrik in un sito di test e le tue indicazioni/guide sono davvero utili.
Pietro
0 # Davide 2016-10-27 14:45
Sto cercando di fare il form descritto in questa guida, pero' non ho capito come faccio ad inserire le tre tabelle con regioni, province e comuni nel mio database.
Per favore mi puoi spiegare meglio?
0 # giusebos 2016-10-27 15:19
devi avere un pò di confidenza con la creazione di tabelle e campi usando phpmyadmin, quindi occorrerebbe un altra guida, qui le uniche istruzioni che ti serviranno sono queste Citazione:
Il secondo prerequisito è quello di inserire le tre tabelle con regioni, province e comuni nel vostro database, avendo come caratteristica i seguenti campi:
Tabella Regioni - idRegione, nomeRegione
Tabella Province - idProvincia, nomeProvincia e ksRegione (questa è la chiave secondaria per la regione)
Tabella Comuni - idComune, nomeComune e ksProvincia (questa è la chiave secondaria per la provincia)
cerca una guida su phpmyadmin con google per coprire le lacune in questo campo.
0 # Davide 2016-10-27 15:56
Citazione giusebos:
devi avere un pò di confidenza con la creazione di tabelle e campi usando phpmyadmin, quindi occorrerebbe un altra guida, qui le uniche istruzioni che ti serviranno sono queste Citazione:
Il secondo prerequisito è quello di inserire le tre tabelle con regioni, province e comuni nel vostro database, avendo come caratteristica i seguenti campi:
Tabella Regioni - idRegione, nomeRegione
Tabella Province - idProvincia, nomeProvincia e ksRegione (questa è la chiave secondaria per la regione)
Tabella Comuni - idComune, nomeComune e ksProvincia (questa è la chiave secondaria per la provincia)


cerca una guida su phpmyadmin con google per coprire le lacune in questo campo.
Mi potresti consigliare tu una guida su phpmyadmin semplice?
0 # antonio 2016-11-10 16:49
le tabelle nel database sono presenti.
occorre creare le liste anche in fabrik dal database? quale procedura corretta?
Grazie
0 # giusebos 2016-11-10 17:03
Parti sempre dalla lista dove potrai creare una nuova tabella oppure usarne una esistente fra quelle della tua installazione joomla.

fai attenzione però, fabrik ha il "potere" di cambiare, i tipi di campi, quindi se tu usi una tabella esistente di joomla che ha un campo del tipo warchar e nel tuo campo personalizzato questo diventa un datatime, comprometteresti l'integrità del database creando qualche problema a joomla. Quindi se fabrik ti fa vedere un avviso con "attenzione stai cambiando un tipo di campo etc etc" evita di farlo se stai lavorando su una tabella/campo del core di joomla o di qualche estensione.
0 # antonio 2016-11-10 17:37
le tabelle di joomla non le tocco.

lo scenario è il seguente: devo creare la lista province per aggiornare in base alla selezione della regione

ho un file csv province con 3 campi. se importo il file cosi, fabrik li tronca in quanto aggiunge datatime e id.
Ho provato ad aggiungere altri due campi, sia vuoti, che popolati, ma quando dalla lista, vedi dati - importa csv non effettua l'operazione corretta, cioè crea solo la data e l'id
0 # giusebos 2016-11-10 18:37
esattamente che campi hai nel file province?

Datatime ed id in questo caso non servono e puoi cancellarli, registrerebbero chi in caso di inserimento lo ha effettuato e a che ora.
Comunque per un corretto funzionamento, il file province, o meglio la tabella province deve avere id provincia, nome provincia, id regione.

Fabrik per avere il meccanismo a cascata di regioni>>province>>comuni ha bisogno dei suoi form, come se in futuro volessi aggiungere regioni, province e comuni, quindi dovrai realizzare 3liste/form una per regioni, una per province ed una per comuni anche se sarà poco probabile il suo utilizzo (magari in futuro ci saranno altre province ed altri comuni e tu potrai correggere/aggiornare).

Invece di lavorare con gli inserimenti da csv verso fabrik, fallo da csv verso mysql in phpmyadmin, oppure trova in rete i file direttamente in MySql
0 # antonio 2016-11-11 12:11
dopo qualche ora di lavoro ci sono riuscito ed ho scoperto davvero le grandi potenzialità di fabrik.
il mio problema era collegato nella fase di creazione della lista nel collegarlo al corretto nome della tabella.
una volta risolto ho subito notato che fabrik crea il tutto automaticamente. davvero funzionante
0 # antonio 2016-11-13 15:41
all'interno della tabella comuni ho aggiunto 3 campi cap, numero abitanti, altitudine.
è possibile inserire nel form altri 3 campi e farli popolare automaticamente a seguito della scelta del comune, prelevando i dati dalla tabella?
Grazie a tutti
0 # giusebos 2016-11-14 23:12
si certo, ma non mescolerei pere con mele. Nella tabella dei comuni non inserirei nemmno il cap; se guardiamo bene alla progettazione i comuni non sono l'ultimo "anello" geografico, mancano ancora le località, e solo dopo sarà possibile inserire il cap. Quindi è preferibile creare una ulteriore tabella da mettere in relazione con quella dei comuni, un pò come la tabella comuni e messa in relazione a quella delle regioni. Però ricorda che le relazioni sono di tre tipi, quindi abbi bene in mente che ci sono relazioni uno a molti, molti a molti e molti ad uno.
0 # antonio 2016-11-18 13:44
Grazie Giuse,
condivido un'pò di esperienza con access e vba l'ho fatta
0 # antonio 2016-11-18 18:01
Ciao Giuse, allora provo ad avventurarmi con le relazioni... speriamo bene :-) al fine della corretta impostazione

creo un form (frm_inserimento_dati) con i seguenti campi:
id_inserimento
data
oggetto
numero presenti
numero assenti

lista (frm_presenti)
id_presenti
cognome_presente
nome_presente
codice_fiscale_presente
id_inserimento

lista (frm_assenti)
id_assenti
cognome_assente
nome_assente
codice_fiscale_assente
id_inserimento
nel frm_inserimento_dati dovrebbe figurare due button che consento di aprire la frm_presenti e la frm_assenti al fine di inserire i relativi dati di quell’oggetto.

frm_dati_completi
id_completo
oggetto
cognome_presente
nome_presente
cognome_assente
nome_assente

In base alla tua esperienza quale sarebbe la migliore impostazione?
Grazie
0 # giusebos 2016-11-18 18:42
Occorrerebbe una super guida che non ho il tempo di scrivere e sopratutto di testare, capisci che poi diventa un lavoro......

Non ho capito se tutti quei dati vanno in un form, ma se fosse così farei attenzione alle ridondanze: presenti ed assenti fanno sempre parte di un gruppo di utenti/allievi, quindi organizza le cose in modo che tu possa avere una casella con presente/assente.

per il resto non ho chiaro se è un registro digitale o altro e non saprei darti nessun altra indicazione.
0 # antonio 2016-11-18 18:06
In pratica per ogni oggetto sono presenti diversi cognomi e nomi dei presenti e degli assenti
0 # antonio 2016-11-18 18:47
hai ragione giuse, provo a mettere in pratica qualcosina vediamo se può essere corretta l'impostazione
grazie ancora
0 # antonio 2016-11-18 18:53
provo con una solo form piu semplice:
oggetto (resta costante una volta inserito) al posto di dover ogni volta inserire il testo, comunque collegato all'utente
cognome
nome
codice fiscale
presente/assente

comando SALVA inserisce i dati nella lista
0 # antonio 2016-11-19 13:07
Ciao Giuse,
sembra funzionare avendo inserito nella voce di menu nelle opzione Fabrik come origine riga -2, cosi dopo il comando salva vengono riportati i valori dell'ultimo record inserito.
E' possibile far riportate solo alcuni campi dell'ultimo record e non tutti?


Grazie
0 # csolope 2016-12-28 18:09
Ragazzi buona sera a tutti ed ovviamente complimenti per il componente. Ho una necessità. Voglio ottenere a cascata il CAP legato ad un COMUNE. Nel DB già esistono questi dati e il menu funziona correttamente, ma non riesco a fare una DISTINCT del campo CAP e pertanto ho una serie di dati duplicati. Qualcuno può darmi indicazioni? Grazie
PS: il sito è www.bariemergency.com, menu CONTATTI, sotto menu REGISTRATI.

Cosimo
+1 # antonio 2016-12-28 18:44
Dovresti usare il plugin autofill nel modulo di registrazione anagrafica utenti
0 # csolope 2016-12-29 08:56
Citazione antonio:
Dovresti usare il plugin autofill nel modulo di registrazione anagrafica utenti


Grazie, effettuerò questa prova.
+1 # giusebos 2016-12-28 22:42
assumo che hai una tabella comuni con dentro:
id provincia (oppure key secondaria per provincia)
id comune
nomeComune
capComune

devi usare un plug in cascadingdropdown

quindi l'elemento di osservazione è il comune e la chiava esterna id comune
0 # csolope 2016-12-29 08:55
Citazione giusebos:
assumo che hai una tabella comuni con dentro:
id provincia (oppure key secondaria per provincia)
id comune
nomeComune
capComune

devi usare un plug in cascadingdropdown

quindi l'elemento di osservazione è il comune e la chiava esterna id comune


Grazie della risposta. Funziona tutto perfettamente, solo che mi fa vedere i CAP duplicati tipo:
70020
70020
70020
70030
70030
70100 ecc. ecc. E' possibile inserire da qualche parte una select .... distinct?
0 # giusebos 2016-12-29 12:18
lasciamo perdere gli assunti e dimmi come è formata la tabella dei comuni
0 # csolope 2016-12-29 13:03
Ho creato tutto seguendo il Form descritto in questo sito, ho fatto la CREATE con i file scaricati dalla sezione download di questo sito. La tabella COMUNI è fatta così:
idComune ksProvincia nomeComune cap
L'elemento CAP nel form ha attivo il plugin cascadingdropdown, nel DATA lista a cascata, tabella COMUNI, id ID_COMUNE, label CAP. Nel WATCH elemento di osservazione PROVINCIA, chiave esterna KsProvincia. Il resto dei campi tutti valori standard.
0 # csolope 2016-12-29 13:13
RISOLTO: grazie GIUSEBOS seguita indicazione che mi era sfuggita:
"quindi l'elemento di osservazione è il comune e la chiave esterna id comune".
0 # giusebos 2016-12-29 13:27
Seguendo questo tutorial dovrai solo inserire il campo CAP che dovrai associare al plug in cascadingdropdown.
La tabella da leggere in DATA sarà quella dei comuni, id sarà idComune e label cap


quindi l'elemento di osservazione è il comune e la chiava esterna id comune

qui c'è il form funzionante senza le regioni in quanto non mi interessava inserirle:
http://formlab.progetto.ovh/anagrafica-clienti/form/3/
0 # csolope 2016-12-29 13:31
GRAZIE, gentilissimo
0 # Antonio 2017-10-25 16:09
Grazie per l'aiuto...

sto riscontrando problemi sul sito di Fabrikar.com

non riesco ad effettuare il download del core, ho dovuto installare il componente tramite la funzione "Installa da Web"

ma quello che è più grave è che i plug in che sto scaricando (compreso cascadingdropdown) sono file zip che non funzionano perché:
1. se cerco di installarli mi danno Errore Impossibile trovare pacchetto di installazione e se cerco di scompattarlo mi crea un pacchetto zip.gpgz che se scompatto diventa nuovamente .zip
2. non riesco a trovare plug in per Joomla 3.x.x ma solo 2.5

che fare? grazie!
0 # giusebos 2017-10-25 18:02
è possibile che sia sucesso qualcosa al loro sito...prova a fare una segnlazione
0 # Vito 2018-05-08 12:50
Salve,
ho trovato la spiegazione sul plugin di fabrik molto interessante.
Io sto creando un form che serve agli iscritti per creare dei verbali personali, inerenti i corsi effettuati in qualità di istruttori.
Il problema che sto riscontrando riguarda il filtro da applicare al cascading dropdown, nel quale dovrebbero apparire i numeri brevetto acquistati dagli iscritti. Infatti, senza applicare filtri, compaiono tutti i numeri a prescindere dall'iscritto loggato.
Probabilmente sto sbagliando approccio, chiedo il vostro aiuto.
Grazie,
VMB
0 # giusebos 2018-05-09 10:29
Citazione Vito:
Salve,
ho trovato la spiegazione sul plugin di fabrik molto interessante.
Io sto creando un form che serve agli iscritti per creare dei verbali personali, inerenti i corsi effettuati in qualità di istruttori.
Il problema che sto riscontrando riguarda il filtro da applicare al cascading dropdown, nel quale dovrebbero apparire i numeri brevetto acquistati dagli iscritti. Infatti, senza applicare filtri, compaiono tutti i numeri a prescindere dall'iscritto loggato.
Probabilmente sto sbagliando approccio, chiedo il vostro aiuto.
Grazie,
VMB

Non credo di penda dal filtro, ma da come questi dati vengono letti, inoltre le notizie che sono troppo generiche e non saprei come aiutarti.
0 # vito 2018-05-09 12:06
Giusebos grazie per la risposta, provo ad essere più esplicito.
Gli iscritti al sito sono degli istruttori che organizzano corsi in classe, rilasciando dei brevetti.
Il numero di brevetto viene acquistato attraverso il sito dell'associazione, utilizzando hikaserial + hikashop.
Alla fine di ogni corso, gli istruttori compilano un verbale attraverso il sito.
Verbale che sto realizzando con Fabrik.
Io ho creato la lista dei brevetti che è collegata ad hikaserial, ed in effetti nella lista vedo tutti i numeri acquistati e tutte le colonne riportate sulla tabella creata da hikaserial.
Ho creato una nuova lista, collegata al form del verbale che gli istruttori compileranno a fine corso.
Sto utilizzando l'elemento cascading dropdown per richiamare i numeri di brevetto da riportare sul verbale, il problema attuale è che con qualsiasi utente mi colleghi, vedo tutti i numeri.
Ti ringrazio per l'assistenza.
VMB
0 # giusebos 2018-05-09 13:25
Citazione vito:
Giusebos grazie per la risposta, provo ad essere più esplicito............
VMB


Forse devi fare in modo che l'utente loggato veda solo i suoi dati, quelli associati all'user loggato
0 # vito 2018-05-09 13:28
Esatto è proprio quello che vorrei ottenere ma non ci sto riuscendo.
0 # giusebos 2018-05-09 13:44
Citazione vito:
Esatto è proprio quello che vorrei ottenere ma non ci sto riuscendo.

però devi imparare a fare le ricerche....
https://www.icagenda.it/fabrik-permessi-ed-autorizzazioni.html

nella parte finale potrai vedere come leggere i propri dati, ma l'articolo leggilo tutto che ti conviene.
0 # vito 2018-05-09 14:03
Ok grazie...

Per pubblicare un commento devi registrarti