Costruire la app = configurare Drupal
La costruzione di una app con Drupal consiste nella configurazione di Drupal guidata da comandi, selezioni e campi da compilare, presentati dal menù di Amministrazione. La configurazione di Drupal è molto ricca e cresce con l'installazione di moduli aggiuntivi. Con MieApp voglio aiutarti a scoprire passo passo le configurazioni più importanti, senza doverti preoccupare se sbagli o dimentichi qualcosa, perché in ogni momento potrai tornare indietro e raffinare la tua opera. Non è quindi necessario avere tutto chiaro prima di partire a costruire, anzi la prima versione della app ti fornirà suggerimenti su come proseguire.
Descrivi la tua app
Anche se potrai cambiare idea lungo il percorso, è comunque importante partire avendo in mente una prima idea di cosa vuoi dalla tua app. Ti suggerisco di provare a descriverla rispondendo a queste domande:
- Scopo: descrivi con poche parole lo scopo della app
- Azioni: elenca le principali azioni che si possono eseguire nella app
- Informazioni: identifica le informazioni necessarie per l'esecuzione delle azioni.
- Utenti: identifica le persone che useranno la app.
- Protezioni: definisci quali azioni sulle Informazioni possono essere eseguite dai diversi Utenti
- Percorsi: descrivi a parole o con un diagramma il percorso offerto agli Utenti, come sequenza di comandi e pagine.
- Automazioni: elenca le azioni che la app deve eseguire senza necessità di comandi da parte degli Utenti.
Troverai un paio di esempi di descrizione nelle Guide che seguono.
Traduci la descrizione in configurazioni di Drupal
Descritta (anche sommariamente) la app, vediamo come utilizzare gli strumenti messi a disposizione da Drupal per tradurre la descrizione in configurazioni.
Dalle informazioni ai Contenuti
Il modo più semplice ed intuitivo per rappresentare in Drupal le Informazioni che hai identificato è creare per ogni tipo di Informazione uno o più Tipi di Contenuti. Ad esempio, se la tua app deve gestire la tua biblioteca personale, potresti aver bisogno di memorizzare Autori, Libri, Categorie e Scaffali: per disporre rapidamente di una prima versione della app, ti basta aggiungere in Drupal un Tipo di Contenuto "Autore" caratterizzato da nome e cognome, "Categoria" caratterizzato semplicemente da un titolo, "Scaffale" caratterizzato da una descrizione (es. "Libreria Sala, quarto dall'alto") e "Libro" caratterizzato da titolo, anno di edizione, editore, uno o più Autori ed una o più Categorie ed uno Scaffale. Vedremo nella apposita Guida come è facile con Drupal e come, definiti questi Tipi, inserire nella app i Contenuti e collegarli tra loro.
In realtà, Drupal gestisce anche entità diverse dai semplici Contenuti, quali ad esempio File, Commenti, Utenti ecc. ma lo scopriremo a tempo opportuno.
Dalle persone agli Utenti e Ruoli
In particolare, se prevedi che la tua app sia utilizzata da altri oltre a te, per la gestione degli utenti della app Drupal mette a disposizione il tipo predefinito "Utente", per il quale hai a disposizione le funzioni di creazione, modifica, cancellazione, autoregistrazione, login, logout ed altre ancora. Crea un Utente diverso per ogni persona fisica, altrimenti non potrai distinguere chi fa cosa.
Drupal distingue tra i Visitatori (chi usa la tua app senza registrarsi), gli Utenti autenticati (chi usa la tua app dopo essersi registrato) e l'Amministratore (cioè tu). Se hai bisogno di differenziare ulteriormente gli Utenti autenticati in tipi con diversi poteri, crea un Ruolo per ogni tipo. Ad esempio, se la tua app
Sempre negli esempi già visti, potremo creare i Ruoli "Vicino", "Gestore" e "Operatore". Fin qui i Ruoli sono semplicemente delle etichette da applicare agli Utenti per categorizzarli, ma vedremo da poco come Drupal usa i Ruoli per definire cosa gli Utenti possono fare nella app deve gestire un gruppo di lavoro, potresti definire i Ruoli "Collaboratore" e "Responsabile" per distinguere chi produce Contenuti da chi li valida o autorizza.
Dalle protezioni ai Permessi
Configurati i tipi di Contenuti e i Ruoli Utente, Drupal ti mette a disposizione una gestione dei Permessi con la quale abilitare i diversi Ruoli a creare, modificare, cancellare i diversi Tipi di Contenuti e a utilizzare altre funzioni non relative ai Contenuti (es. creazione di Utenti). Vedremo più avanti che la protezione offerta dai Permessi può essere integrata con strumenti più sofisticati, grazie all'installazione di moduli aggiuntivi (es. coi Gruppi è possibile creare comunità di Utenti e Entità con Ruoli che valgono solo all'interno del Gruppo).
Da percorsi alle Viste e Menù
Per la presentazione dei Contenuti e degli Utenti. Drupal mette a disposizione le Viste, un potentissimo strumento cui dedicherò molte Guide. Con le Viste puoi predisporre le pagine della tua app indicando quali tipi di Contenuti o Utenti mostrare, in che ordine, quali filtri applicare e mescolando informazioni prese da diverse entità. Ad esempio, potrai costruire una pagina "BIblioteca" che elenca tutti i tuoi Libri con un filtro sulla Categoria e una ricerca per Autore, una pagina "Autore" che mostra i dati di un Autore e i suoi libri ed una pagina "Scaffalatura" che elenca tutti gli scaffali e, cliccando su uno di essi, l'elenco dei libri ivi collocati. Con le Viste puoi anche aggiungere comandi che appaiono solo se il contesto lo richiede (es. un comando "Prendi in prestito questo Oggetto" che appare solo se l'Oggetto mostrato non appartiene all'Utente che lo sta guardando).
Oltre alle Viste, Drupal ti permette di configurare più Menù di comandi, che a loro volta richiamano azioni o Viste.
Dalle azioni ai Moduli
Le funzioni necessarie per gestire Contenuti, Utenti, Ruoli, Permessi, Viste, Menù e molti altri aspetti di Drupal che presenteremo via via che ci serviranno sono già in Drupal. Se la tua app richiede azioni non disponibili nella installazione base di Drupal, puoi cercare tra le migliaia di Moduli aggiuntivi messi a disposizione gratuitamente dalla comunità quello che fa per te. Ad esempio, ci sono Moduli per rappresentare i Contenuti su mappa geografica, per spedire mail agli Utenti, per condividere i Contenuti sui social, per aggiungere nuovi tipi di protezioni ecc. In MieApp presenterò Moduli aggiuntivi che mi capita più spesso di utilizzare nella costruzione di app.
Dalle automazioni alle ECA
Per far eseguire automaticamente a Drupal azioni in modo periodico o come conseguenza di una azione di un Utente, puoi disegnare procedure ECA (Event - Condition - Action), che spiegano a Drupal quali azioni eseguire quando accade un certo evento sotto certe condizioni. Le ECA sono forse la cosa che si avvicina di più alla programmazione in Drupal, ma non richiede conoscenza di linguaggi specialistici ed usa tutti gli altri strumenti Drupal che nel frattempo avrai imparato a conoscere.
Qualche esempio
Nelle Guide che seguono, applicherò questo metodo ad un paio di esempi, il primo molto semplice e l'altro più complesso come evoluzione del primo:
- Miei Libri: una app di uso personale per gestire la tua biblioteca e i prestiti agli amici
- Prestiti tra Vicini: una app per gestire i prestiti di oggetti tra vicini