gestiamo le nostre liste di dati

Chronoconnectivity V5 gestire i nostri database con form d'inserimento e di modifica

Nel precedente tutorial abbiamo visto come inserire delle barre degli strumenti e come interagire con le colonne per ordinarle e fare in modo di editare e/o visualizzare la scheda del dettaglio.

per chi fosse approdato in questa pagina dopo una ricerca con google, consiglio di iniziare il tutorial su chronoconnectivity partendo da qui

Progettando un sistema per la gestione dei dati dobbiamo sempre tenere in mente chi può fare cosa, questo è determinante per la buona riuscita dei nostri intenti e per una certa sicurezza, non vorremmo mai che i dati dei nostri database fossero compromessi o cancellati da qualcuno che non abbia i giusti permessi.

In un sistema dove i dati sono gestiti da più soggetti, potremmo avere l'esigenza di stabile delle regole:

  • chi potra leggere i dati,
  • chi potrà leggere e scrivere i dati,
  • chi li potra leggere, scrivere e cancellare i dati
  • se chi è titolare di quei dati, può accedervi per modificarne solo i propri.

Immaginate il sito di una scuola dove abbiamo 3 tipi di soggetti, i docenti, gli alunni, i genitori degli alunni.

In un minimo di organizzazione dovremmo fare in maniera che gli insegnanti (più di uno) di un alunno inseriscono i voti delle loro materie nella scheda dell'alunno, ognuno potrà inserire i propri e non potrà editare i voti relativi ad altre materie inseriti da altri insegnanti. L'alunno a sua volta ed i suoi genitori potranno vedere questi voti senza nessuna possibilità di modifica. Altresì non sarà consentito la visualizzazione di questi voti ai restanti alunni e nemmeno ai genitori di questi.

Come avrete capito si delinea una certa gerarchia di permessi a cui non possiamo sottrarci, ma a tutto questo dobbiamo anche aggiungervi, dove questi dati saranno scritti e dove visualizzati: quindi ci saranno delle zone riservate, alcune nel back-end di joomla per la gestione e visualizzazione, ed altre nel front-end, le prime destinate agli insegnanti e le seconde destinate agli alunni ei loro genitori.

Nel nostro tutorial non abbiamo preso in considerazione tutta questa gerarchia, questo perchè avevo bisogno di creare qualcosa di semplice per lo scopo didattico di questo tutorial, e che facesse capire "sopratutto" la meccanica di questi componenti, quindi allo stato dei fatti chi avrà accesso alla schermata di inserimento dei dati (il gruppo Register di Joomla) potrà inserirli senza nessuna limitazione, cancellarli o editarli. Ch invece frà parte del gruppo "Public", ovvero i visitatori, potranno semplicemente visualizzare il dettaglio e la lista.

Noi in questo tutorial ci occuperemo di dare dei permessi solo per la gestione con chronoconnettivity, e non sarà fatto nessun intervento sul form realizzato con chronoforms nel primo tutorial di questa serie.

questo è quello che realizzeremo

Iniziamo con il dare i permessi necessari alle operazioni, portandoci in "Front List">>"Permission", troveremo una schermata dove sulla sinistra abbiamo le "operazioni" su cui dare i permessi, mentre sulla destra i gruppi ai quali abbinare i permessi.

  • Quindi per l'operazione "index", ovvero la visualizzazione della lista, possiamo tranquillamente inserire "allowed" sul gruppo "Public"
  • per l'operazione "view", la visualizzazione della scheda dettaglio daremo anche ad essa "allowed" per il gruppo "Public"
  • per la scheda "edit" che servirà per le modifiche dei record, daremo i permessi solo al gruppo "Registered" e al gruppo "Super User", in modo tale che solo questi 2 gruppi possono editare i record. Daremo le stesse impostazioni anche alle operazioni "save", "save list" e "delete"

Iniziamo con il far visualizzare la scheda del dettaglio del record a tutti gli utenti. Portiamoci in "Front List">>"action">>"view" ed inseriamo nel box "code"il seguente codice:

<p>{gestione.id}</p>
<p>{gestione.nome}</p>
<p>{gestione.cognome}</p>
<p>{gestione.citta}</p>
<p>{gestione.numero_cellulare}</p>

Salvate le modifiche e portatevi nel front-end esattamente nella pagina dove visualizzare la lista, per fare ciò è necessario creare una voce di menù del tipo chronoconnectivity collegataalla a "connessione_rubrica".

Se vi ricordate, nel precedente tutorial abbiamo legato ai nomi la possibilità di cliccarci sopra per visualizzare il dettaglio del record semplicemente inserendo "gestione.nome:gestione.nome" in "Front List" >> "Setting" >> "View linkable", quindi adesso cliccando sul nome dovreste vedere la scheda o il dettaglio del record, bello vero!

Voglio fare di più, siccome non mi piace l'estetica di questa scheda, voglio aggiungere qualche classe bootstrap insieme a qualche icona di font-awesome (di cui abbiamo parlato qui), per dargli un aspetto più professionale.

quindi sostituite il codice prcedentemente incollato, con questo sottostante.

 <div class="list-group">
<li class="list-group-item><i class="fa fa-key"></i> {gestione.id}</li>
<li class="list-group-item><i class="fa fa-user"></i> {gestione.nome}</li>
<li class="list-group-item><i class="fa fa-user"></i> {gestione.cognome}</li>
<li class="list-group-item><i class="fa fa-map-marker"></i> {gestione.citta}</li>
<li class="list-group-item><i class="fa fa-phone"></i> {gestione.numero_cellulare}</li>
</div>

Ora che abbiamo visto come visualizzare la scheda del dettaglio, vorrei che gli utenti del gruppo "Registered" e "SuperUser" abbiano facoltà di creare nuovi recorde sopratutto di editarli, quindi dobbiamo procedere con la creazione del form che servirà all'inserimento di un nuovo record ma anche alla sua modifica se premuto la voce di menù collagata alla modifica oppure cliccando su modifica nella colonna modifica:

Andiamo in "Front List">>"action">>"edit" ed inseriamo il seguente codice che ho personalizzato con alcune classi di bootstrap:

 <input type="hidden" name="gestione[id]" /><br />
<label>nome</label><input type="text" class="form-control" name="gestione[nome]" /><br />
<label>cognome</label><input type="text" class="form-control" name="gestione[cognome]" /><br />
<label>città</label><input type="text" class="form-control" name="gestione[citta]" /><br />
<label>numero cellulare</label><input type="text" class="form-control" name="gestione[numero_cellulare]" /><br />
<input type="submit" class="btn btn-info btn-lg"  value="Save" /><br />

Il codice è formato da tutti i campi che abbiamo utilizzato per la realizzazione di questa guida, comprensivo del campo ID che abbiamo tenuto nascosto ma che ci servirà per evitare di duplicare i record in caso di modifica.

Possiamo testare adesso l'inserimento di un nuovo record, oppure la modifica.

Spero che questa guida vi sia stata di aiuto, e se ritenete di potermi ringraziare offrendomi un caffè cliccate pure nel pulsante sottostante, oppure cliccate su uno dei banner pubblicitari.

offrimi un caffè