Indice

🟦Pronta 🟨Bozza 🟥Da scrivere

I Campi

Campi delle Entità. Campi predefiniti. Campi aggiunti. Nomi interni ed esterni dei Campi. Campi obbligatori e multivalore. Tipi di Campi. Formati di testo. Riferimenti tra Entità.
Aggiornata il:
Stato: 🟦Pronta

Campi delle Entità

Le informazioni contenute in una Entità sono memorizzate nei suoi Campi. Usando una metafora, l'Entità è una cassettiera ed ogni suo Campo è un cassetto in grado di memorizzare uno specifico tipo di informazione. Ad esempio, il Campo "Nome utente" delle Entità di tipo Utente contiene un testo che è la username con cui la persona fa login. 

Campi predefiniti

Come abbiamo visto, ogni Entità ha un Campo numerico che contiene il suo identificativo univoco. Oltre a questo Campo, ogni tipo di Entità ha altri Campi predefiniti. Ad esempio:

  • gli Utenti hanno sempre i Campi Nome utente, Password, Email. 
  • i Termini di Tassonomia hanno sempre i Campi Genitore, Profondità e Peso che servono a collocare il Termine nella gerarchia della Tassonomia 
  • i Contenuti hanno sempre un Campo testuale Titolo, un Campo logico Pubblicato (indica se il Contenuto è visibile o nascosto) e i seguenti Campi compilati automaticamente da Drupal, ma modificabili dall'Amministratore: Autore (l'Utente che ha creato il Contenuto), Creato il (Data e ora di creazione del Contenuto) e Modificato (Data e ora di ultima modifica del Contenuto).

Aggiungere Campi

L'Amministratore può aggiungere Campi ai Bundle. Ad esempio, è possibile aggiungere agli Utenti un Campo testuale per memorizzare il nome della persona e un Campo selezione per il sesso. La possibilità di aggiungere Campi è fondamentale per la costruzione delle app con Drupal, perché permette di costruire Entità adatte alle specifiche esigenze della app, senza dover lavorare sulle tabelle del database di Drupal. Le modalità di aggiunta, modifica e eliminazione di Campi differisce da Bundle a Bundle e sono illustrate nelle Guide a mano a mano che servono. Ad esempio, per aggiungere un Campo agli Utenti si usa il comando Configurazione - Impostazione profilo - Gestisci Campi. 

Nome interno e nome esterno (etichetta) del Campo

Ogni Campo ha un nome esterno e un nome interno. Il nome esterno è l'etichetta che l'Amministratore assegna al Campo e col quale il Campo viene richiesto e mostrato. Il nome interno è quello con cui Drupal identifica il Campo. Per default, il nome interno è composto da field_ seguito dal nome interno, in caratteri minuscoli. Ad esempio, se il Campo ha nome esterno "Cognome", viene identificato da Drupal col nome interno field_cognome. 

Mentre il nome esterno può essere il medesimo per più Campi e può essere modificato in ogni momento, il nome interno non può essere più modificato una volta confermato e quindi occorre porre qualche attenzione quando si accetta il nome interno proposto automaticamente da Drupal. Non ci possono essere due Campi (anche di tipi di Entità diversi) con lo stesso nome interno: Drupal segnala questa situazione come errore e si rifiuta di salvare il nome. L'importanza dei nomi interni dei Campi sarà evidente nella costruzione delle Viste.

Tipi di Campi

Drupal mette a disposizione molto tipi di Campi, elencati quando si aggiunge un Campo ad un Bundle:

Alcuni moduli aggiuntivi aggiungono ulteriori tipi di Campi, ad esempio Campi che memorizzano coordinate geografiche, colori, indirizzi di rete ecc.  

Ogni tipo di Campo ha una propria configurazione specifica. Ad esempio: il Campo di tipo Data e ora, che memorizza un istante temporale preciso al secondo, può essere configurato in modo da memorizzare la data senza orario, oppure in modo da memorizzare un intervallo tra due date; il Campo di tipo Selection List deve essere configurato specificando quali valori elencare; il Campo di tipo Caricamento File prevede due sottotipi - Immagine e File - per ognuno dei quali è possibile specificare quali tipi di file accettare (es. pdf, txt, doc per il sottotipo File), la dimensione massima accettata e in quale cartella del server salvarli.     

Formato dei Campi testuali

In particolare, per i Campi di tipo testo esistono due sottotipi: Testo semplice e Testo formattato. Nella configurazione dei Campi di tipo Testo formattato occorre specificare quale formato può accettare: un Formato è una specifica configurazione, che elenca le formattazioni ammesse (es. grassetto, sottolineato, font) e le trasformazioni che sono effettuate sul testo (es. trasformazione di indirizzi internet in link cliccabili). I Formati disponibili sono elencati e modificabili in Configurazione - Formati testo e editor. 

Per ogni Formato, l'Amministratore specifica i Ruoli Utente che possono utilizzarlo, se attivare l'editor visuale, quali comandi dell'editor visuale mettere a disposizione, quali trasformazioni attivare ecc. Per motivi di sicurezza, conviene assegnare agli utenti "base" un Formato con i comandi strettamente necessari (es. il grassetto), riservando a utenti più esperti e fidati un Formato con comandi più evoluti, ad esempio di caricamento immagini. Se per un Campo assegniamo ad un ruolo Utente più di un Formato, l'Utente potrà decidere di volta in volta quale Formato usare per compilare il Campo.

Riferimenti tra Entità

Nella costruzione di app, rivestono particolare importanza i Campi di tipo Riferimento (reference), perché questi Campi definiscono le relazioni tra Entità. Ad esempio, nella app "Miei Libri" per legare un Prestito ad un Libro, aggiungiamo al Contenuto di tipo "Prestito" un Campo riferimento che rimanda ad un Contenuto di tipo "Libro": quando un utente scrive in quel Campo, Drupal guida la sua compilazione mostrando i Libri presenti nella app e non accetta valori che non identifichino un Libro. Nelle Guide che seguono, spesso indicherò questa relazione come "Prestito → Libro" perché, se conosco il Prestito, posso arrivare al Libro.

Campi obbligatori e multivalore

Quando si aggiunge un Campo ad un Bundle, è possibile specificare se la compilazione del Campo è obbligatoria o meno. E' anche possibile specificare quanti valori possono essere memorizzati nel Campo: uno, un numero predefinito (esempio 3) o un numero illimitato. Ad esempio, se specifichiamo che il Campo "Allegato" di tipo File può accettare fino a tre valori, potremo salvare in quel Campo tre file, senza necessità di aggiungere al Bundle tre Campi "Allegato 1", "Allegato 2" e "Allegato 3".