Se abilitate l'autoregistrazione e selezionate l'opzione "Dopo conferma per email", l'utente che compila il modulo appare nella tabella degli utenti registrati ma non può accedere immediatamente con la password che si è scelto ai contenuti riservati. Sar-At manda all'utente una mail dove gli chiede la conferma della volontà di iscriversi (in italiano, inglese e russo). La mail contiene un link da cliccare per accettare l'iscrizione. Quando l'utente fa il clic, torna sul vostro sito. Sar-At automaticamente ne completa l'iscrizione, lo abilita all'accesso alle sezioni riservate al gruppo dei registrati se ce ne sono, e gli mostra la pagina indicata in questa stessa schermata, "Modulo", sotto la voce URL.

L'utente che fa clic sul link di accettazione fa anche automaticamente log-in sul vostro sito.

Registrazione e social network

Possedere un parco di utenti registrati è un obiettivo valido per qualsiasi sito web, ma il modo migliore per raggiungere questo obiettivo cambia di caso in caso.

Un commercio elettronico che intende spedire merce a casa dovrà conoscere tutti i recapiti della sua clientela e avrà vantaggio da informazioni su quali siano le marche preferite, le passioni, la propensione a spendere, la fascia d'età e via dicendo -- informazioni che sostanzialmente il cliente ci fornisce in forma diretta, esplicitamente o implicitamente. Esempio opposto: un blog ha interesse a ricevere commenti intelligenti ma poco importa che di ogni commentatore esiste una scheda dettagliata.

Per i siti più orientati verso questa seconda estremità dello spettro, Sar-At introduce la possibilità di accettare visitatori registrati altrove -- su un social network.

Il social network offrirà alcune informazioni di base sulla persona, la quale potrà semplicemente autorizzare il social network a passarcele. Le informazioni che potremmo ricevere sono:

Campo

Valore

identifier

Una sequenza di numeri e lettere univoca per il network consultato

profileURL

Link alla pagina del profilo dell'utente sul social network

photoURL

Fotografia (o avatar) del visitatore

displayName

Nome utente da mostrare a video

description

Auto-presentazione dell'utente

firstName

Nome di battesimo

lastName

Cognome

gender

Sesso (M o F)

language

Lingua preferita

age

Età

birthDate

Data di nascita (a volte solo giorno e mese)

email

Indirizzo di posta elettronica dichiarato

emailVerified

Indirizzo che il social network ha verificato corrispondere all'utente

phone

Numero di telefono

address

Indirizzo di casa

country

Nazione di residenza

region

Provincia

city

Città (mentre questo manuale viene scritto, Facebook fornisce però la città di nascita e non quella di residenza)

zip

Codice di avviamento postale

Bisogna sottolineare che non tutti i social network forniscono tutte queste informazioni (in generale, Facebook tende ad essere il più prolifico) e non tutti gli utilizzatori dei social network compilano completamente la loro scheda di profilo utente. Quindi se si sceglie questa strada bisogna accontentarsi di ciò che arriva.

Vediamo brevemente alcuni casi comuni e come si comporta Sar-At di conseguenza.

Primo caso - gruppo semplice non collegato ad una tabella di anagrafiche

Avete definito nel menu Utilizzatori di Sar-At un gruppo "lettori", a cui avete dato accesso alla sezione "ricette" del vostro sito. Non avete fatto altro, ovvero questo gruppo non è collegato un modulo nel quale è richiesto di compilare i propri dati anagrafici. Magari potreste aver importato direttamente in questo gruppo alcune username o password di vostri conoscenti o clienti storici.

Se ora abilitate l'accesso da Facebook e Twitter, chiunque acceda attraverso questi social network gode di tutti i privilegi associati ai lettori, ovvero può consultare le ricette. I visitatori così autenticati non sono affatto registrati in Sar-At. Chi utilizza una connessione Facebook per entrare sul vostro sito risulta automaticamente abilitato per un certo periodo di tempo (tipicamente la durata di una sessione di navigazione). L'abilitazione può venire riattivata automaticamente all'accesso successivo.

Secondo caso - gruppo semplice collegato a una anagrafica

Avete definito nel menu Utilizzatori di Sar-At un gruppo "commentatori" a cui avete dato accesso alla sezione "commenti" del vostro blog dove vengono registrati interventi in risposta ai post del blog. Avete stabilito che che ogni commento va firmato dall'autore. Avete creato una sezione modulo aggiornabile chiamata "anagrafiche_commentatori" con le anagrafiche dei visitatori, prevedendo i campi indicati nella tabella precedente (da identifier a zip), tutti non obbligatori.

Se ora abilitate l'accesso da Google e Foursquare, chiunque acceda attraverso questi social network gode di tutti i privilegi associati ai commentatori, ovvero può postare commenti. I dati provenienti dai network vengono automaticamente registrati da Sar-At nella tabella anagrafiche_commentatori.

Terzo caso - gruppo complesso collegato a una anagrafica

Avete definito nel menu Utilizzatori di Sar-At un gruppo "clienti" a cui avete dato accesso al commercio elettronico del vostro sito. Avete creato una sezione modulo aggiornabile chiamata "anagrafiche_clienti" con le anagrafiche dei visitatori, prevedendo campi banali come il cognome ma anche campi extra come il codice fiscale, che nessun social network gestisce.

Se ora abilitate l'accesso da Yahoo e Facebook, chiunque acceda attraverso questi social network si vede presentare la schermata di registrazione (il modulo gestito da showForm), ma in questo modulo alcuni campi sono precompilati -- quelli riservati ai dati il cui valore ci è inviato dai social network.

Casi particolari

Immaginate di intervenire sul blog descritto nel caso 2, indicando che l'informazione sull'email del visitatore è obbligatoria. Di primo acchito sembrerà che nulla sia cambiato: normalmente un utente si collegherà attraverso il social network e potrà immediatamente lasciare un commento.

La medesima esperienza descritta per il caso 3 accadrà però -- automaticamente -- a quegli eventuali visitatori che non avessero condiviso con il social network il proprio indirizzo email.

Configurazione per social network

Se desiderate accettare registrazioni da network esterni dovete innanzitutto chiedere l'abilitazione al network stesso. Nel menu Utilizzatori di Sar-At troverete alla voce Social Network un elenco di possibili partner predisposti. Cliccando il pulsante "Configura" accedete alla scheda del network e da lì incontrate un link diretto alla pagina web dove dovrete stipulare l'accordo di partnership gratuito, in modo da ricevere una coppia di valori (di solito chiamati "id" e "secret") che dovrete incollare dentro Sar-At. Una volta configurato un network è potenzialmente utilizzabile per il log-in dei visitatori

I social network non configurati appaiono con una icona in bianco e nero, che diventa colorata quando la configurazione è completata. La configurazione effettuata resta editabile (il pulsante diventa "riconfigura").

Oltre ai social network più importanti, già predisposti per la connessone, Sar-At vi consente di scambiare credenziali con altri siti web, utilizzando un protocollo standard chiamato OpenID. Cliccate il pulsante "aggiungi nuovo network..." in basso per abilitare la interconnessione. Nella schermata che appare digitate il nome del network e l'identificatore OpenID da esso fornito.

I network abilitati via OpenID sono eliminabili dalla schermata principale.

Gruppi di utenti e social network

Sar-At vi consente di accettare alcuni network solo in alcune circostanze. Per esempio, se in una sezione del vostro sito state cercando contatti da liberi professionisti potreste accettare il solo LinkedIn, mentre nell'area dedicata ai consumatori potreste prediligere Facebook e per i commenti del blog puntare su Twitter.

Per ciascun gruppo di utenti registrati che il vostro sito definisce (menu Utilizzatori) potete abilitare e disabilitare individualmente i social network.

Presentazione al visitatore dell'opzione social

Come si è visto, Sar-At evidenzia ogni network con una icona. Le icone dei social network predefiniti sono inserite in Sar-At mentre le icone dei network a cui vorrete collegarvi attraverso il protocollo OpenID naturalmente non lo sono.

Potete comunque sostituire le icone predefinite e aggiungere nuove icone per i network OpenID in modo semplicissimo. Nella cartella che ospita il vostro sito create una cartella chiamata img, se già non ne esiste una. Registrate al suo interno una immagine in formato PNG per ciascun network, dandole il medesimo nome con cui Sar-At identifica il network in questione. Prestate attenzione alla differenza tra lettere maiuscole e minuscole. Per esempio, LinkedIn richiede in maiuscolo sia la L iniziale che la I nel mezzo.

La meccanica precisa del log-in, è spiegata al paragrafo "loginBuyer" dell'ultima parte di questo manuale; ovvero il codice HTML da incollare nel vostro sito, con tutte le opzioni disponibili, è trattato in quella sede. Si veda anche il plug-in standard "network_authentication" discusso nella parte quinta.

Anagrafica e social network

Abbiamo spiegato nelle pagine precedenti quali e quante informazioni i social network ci forniscano. È spesso opportuno accoppiare queste informazioni ad altre. Per esempio, se sto scrivendo un commercio elettronico che si basa su PayPal, scopro che PayPal memorizza l'indirizzo di posta elettronica dei clienti in un campo chiamato payer_email. La tabella vista nelle pagine precedenti mi informa del fatto che Facebook invece utilizza la nomenclatura emailVerified. È opportuno che questi due dati siano fermamente correlati nella nostra base dati, di modo che quando un cliente entra da Facebook, il suo indirizzo email venga automaticamente comunicato a PayPal al momento del pagamento, senza che il cliente debba digitarlo.

Notate che, quando si abilita il pagamento PayPal, Sar-At crea automaticamente una sezione anagrafica adatta (chiamata paypal_transaction) e già predisposta per l'uso con i social network secondo la modalità che verrà discussa nel resto di questo paragrafo. Quindi nel caso dell'esempio non è richiesta alcuna azione da parte vostra).

Se avete importato le anagrafiche dei clienti da un foglio Excel o da una base dati fornita dal Centro Elaborazione Dati dell'azienda a cui appartiene il sito, i campi dell'anagrafica avranno nomi arbitrari. Per esempio, probabilmente esisterà il campo "cognome", che andrebbe accoppiato a ciò che i social network chiamano "lastName".

Visitando la linguetta Struttura della vostra sezione modulo contenente dati anagrafici vedrete apparire un rigo intitolato "dato anagrafico corrispondente". In questo rigo potete (e dovreste) indicare se questo campo della vostra anagrafica ha un qualche significato per i social network. Ciò fatto, quel campo verrà automaticamente compilato da Sar-At quando un visitatore si fa autenticare da uno dei network abilitati.

Nel menu a tendina "dato anagrafico corrispondente" appaiono in grigio i nomi dei campi già accoppiati e dunque non ulteriormente accoppiabili.

Modulo aggiornabile

Se il vostro sito permette ai visitatori di registrarsi e accedere così a un'area riservata, ovvero se serve per registrare dati anagrafici del visitatore, allora potete consentire ai vostri visitatori già registrati di tornare nel modulo di registrazione per aggiornare i loro dati.

Immaginiamo che il processo di registrazione lasci l'anagrafica della persona dentro una sezione chiamata membri_club. Se questo è il caso allora la URL del modulo da compilare sarà

  showForm.php?template=membri_club

e l'indirizzo a cui mandare i già soci perché aggiornino i propri dati sarà

  showForm.php?templatemembri_club&id=ANY

La clausola id=ANY viene riconosciuta da showForm e significa "tra le tante, trova e mostra la scheda di questo specifico visitatore registrato".

La ri-registrazione va abilitata dall'interno di Sar-At. Nel menu Pagine scegliete la sezione dove si registrano i visitatori. Ciccate la linguetta Modulo. Spuntate la casella "Aggiornabile".

Se consentite la ri-registrazione, dovete assolutamente fare uso del plug-in "sarat_stopgap"che è presentato più avanti in questo stesso manuale, nella sezione dedicata ai plugin. In caso contrario, la sicurezza del vostro sito è compromessa.

Spesso potrete riutilizzare per l'aggiornamento dei dati la stessa pagina mastro che gli utenti compilano per registrarsi la prima volta. Può però succedere che voi preferiate lasciar aggiornare soltanto alcune informazioni, mentre le altre devono restare invariate. Per esempio, spesso non vogliamo che l'utente possa cambiare la sua username (si veda anche, a questo proposito, la voce renameBuyer nel capitolo sette di questo stesso manuale).

Se è questo il vostro caso, voi creerete una pagina mastro alternativa per la sezione modulo aggiornabile, e manderete i visitatori registrati ad aggiornare la propria scheda chiamando un indirizzo del tipo

  showForm.php?template=membri_club&masterPage=mastro_alternativa.html&id=ANY

Tenete presente che in Sar-At, una pagina mastro usata per l'aggiornamento può contenere i soli campi editabili, e trascurare completamente l'esistenza degli altri, i cui valori saranno automaticamente mantenuti.

Registrazione alla newsletter

Tutti i gruppi di visitatori registrati sono usabili come bersaglio di un invio newsletter. Create un campo chiamato "newsletter" di tipo Breve testo in modo che sia possibile per i visitatori auto-registrati gestire da soli la propria iscrizione o disiscrizione alla newsletter. Ecco un esempio di codice HTML valido per una pagina di registrazione

  <p>Vuoi ricevere la nostra newsletter?</p>
  <input type='radio' id='A' name='newsletter' value='A' checked='checked' />
  <label for='A'> Iscritto</label>
  <input type='radio' id='U' name='newsletter' value='U' />
  <label for='U'> Non iscritto</label>

Ecco un equivalente esempio un po' più complesso per una pagina aggiornabile di showForm. Se usate questo esempio ricordate di indicare un valore di default A nella struttura del campo Newsletter

  <p>Vuoi ricevere la nostra newsletter?</p>
  {RADIOBUTTON newsletter A}
  <label for='sarat_A'> Iscritto</label>
  {RADIOBUTTON newsletter U}
  <label for='sarat_U'> Non iscritto</label>

Naturalmente potete scegliere di gestire l'interfaccia utente anche con una select o un checkbox.

Il significato esatto dei flag A, U ed X è spiegato nel manuale "Governare il sito" nel paragrafo "importazione dei visitatori registrati".

Gestione degli errori

Interessanti studi dimostrano che i moduli HTML sono per i consumatori uno degli aspetti più scoraggianti del web. Sono due le problematiche che spesso rendono frustrante l'esperienza della compilazione. Primo: i messaggi di errore sono mal posti, sia per linguaggio che per collocazione fisica all'interno della pagina, e non rendono banale la correzione degli errori di compilazione come invece dovrebbero. Secondo: a volte gli errori costringono il visitatore a reinserire più volte i dati.

Sar- At risolve completamente la seconda problematica e vi offre tutti gli strumenti per affrontare la prima.

La tecnologia più frequentemente utilizzata per eseguire il controllo a livello browser è un mix di HTML5 e JavaScript. Alcuni controlli riescono bene in quel modo (per esempio, è facile controllare che il visitatore sia costretto a compilare un certo campo). Altri sono praticamente impossibili (per esempio, rifiutare un indirizzo email inesistente come "sono@ffari-miei.it", verificando che non esiste un sito chiamato ffari-miei.it su Internet). La soluzione Sar-At incarica il server centrale di eseguire i controlli e risolve tutti questi problemi alla radice.

Per dimostrare in pratica la gestione degli errori in Sar-At, immaginiamo di voler chiedere una opinione a chi ha acquistato un nostro prodotto. Cominceremo, naturalmente, definendo una sezione modulo con tre campi.

Voto: numero intero, minimo 5, massimo 7, default 6

Email: breve testo, non può essere lasciato in bianco, validazione email.

Commento: testo lungo, può essere lasciato in bianco.

Il modulo da compilare, molto semplice, ha questo aspetto:

Il codice HTML puro (per ora privo di istruzioni specifiche Sar-At) è il seguente:

  <form style='width: 350px; background: pink;' action='showForm.php'>
          <fieldset>
                 <legend><strong>Come valuti questo prodotto?</strong /></legend>
                 Voto:
                         <label><input type="radio" name="voto" value="5" />insuff.</label>
                         <label><input type="radio" name="voto" value="6" />suff.<label>
                         <label><input type="radio" name="voto" value="7" />buono<label>
                         <br />
                 <label>Commento: <textarea name='commento'></textarea></label><br />
                 <label>La tua e-mail: <input type='text' name='email' /></label><br />
                 <input type='submit' value='Spedisci' />
          </fieldset>
  </form>

Così com'è, il modulo funziona già. Però, se il visitatore lo compila e dimentica di scrivere il suo indirizzo email, Sar-At non lo accetta (perché noi gli abbiamo detto che la email è obbligatoria) e ripresenta il modulo bianco. I commenti già scritti dal visitatore sarebbero persuti: una bella seccatura, per lui.

Preoccupiamoci allora di inserire le istruzioni Sar-At per migliorare l'esperienza del nostro visitatore. Innanzitutto, inseriremo i segnaposto Sar-At in modo che quando il modulo si ripresenta (in caso di errore di compilazione) i commenti già inseriti non vengano persi. È molto semplice, dobbiamo solo fare un cambiamento in due righe:

  <label>Commento: <textarea name='commento'>{commento}</textarea></label><br />
  <label>La tua e-mail: <input type='text' name='email' value='{email}' /></label>

Il risultato è molto migliorato ma non è ancora perfetto. I pulsante radio verrebbero azzerati a ogni nuova riapparizione del modulo, così:

Radiobutton

Per assegnare un valore iniziare ai pulsanti radio e per ricordare il valore assegnato dal visitatore in caso il modulo si presenti più di una volta (in caso di errore di compilazione) lasceremo che sia showForm a generarli. Cancelliamo questo codice HTML:

          <label><input type="radio" name="voto" value="5" />insufficiente</label>
          <label><input type="radio" name="voto" value="6" />sufficiente<label>
          <label><input type="radio" name="voto" value="7" />buono<label>

Rimpiazziamolo con questo:

          <label>{RADIOBUTTON voto 5}insufficiente</label>
          <label>{RADIOBUTTON voto 6}sufficiente</label>
          <label>{RADIOBUTTON voto 7}buono</label>

Che differenza fa? Un mondo di differenza. Alla prima apparizione, il visitatore vedrà:

Sar-At ha preselezionato il voto "sufficiente" perché in fase di definizione dei campi noi gli abbiamo detto che questo è il default. Se il visitatore clicca "buono", inserisce un commento, dimentica di scrivere la e-mail e preme "Spedisci", allora il Sar-At ricorda tutte le sue scelte e gli ripresenta il modulo per la correzione, senza costringerlo a reintrodurre nulla.

Per completare la creazione di una esperienza perfetta dobbiamo presentare al visitatore un messaggio d'errore significativo e posizionato nel punto esatto in cui l'errore avviene.

Onerr

Il blocco ONERR viene inviato al visitatore se e solo se ha commesso un errore di compilazione. Dobbiamo specificare il nome del canmpo da controllare. Per esempio, potremmo avere:

  E-mail: <input type='text' name='email' value='{email}' /><br />
  {ONERR email}L'indirizzo di posta elettronica è obbligatorio!{ENDERR email}

Per esempio, se il visitatore compila il modulo come nella figura precedente e preme Spedisci, vedrà:

Naturalmente il contenuto di ONERR può venire personalizzato a piacere. Possiamo far apparire il messaggio di errore in rosso, aggiungere una icona, persino includere un suono… qualsiasi cosa sia consentita in HTML è valida. Per esempio, potremmo colorare di rosso il campo non compilato:

  La tua e-mail: <input type='text' name='email' value='{email}' {ONERR email} style='background: red;' {ENDERR email} />

Disgraziatamente, non tutti i browser supportano la colorazione degli elementi di un modulo (la schermata impeccabile qui sopra è presa da Firefox 0.9: Internet Explorer 5.5 e Safari 1.2 non mostrano il fondo rosso).

È possibile avere più blocchi ONERR relativi al medesimo campo in una pagina mastro ma solo se sono collocati su righe differenti della pagina mastro. Due ONERR sulla stessa riga non sono supportati.

Selectedif

La istruzione SELECTEDIF è analoga a RADIOBUTTON visto sopra, ma viene usato per i menu (le istruzioni "select" dello HTML). Cambiamo il nostro esempio, così:

          Voto: <select name='voto'>
                 <option value='5'>insufficiente</option>
                 <option value='6'>sufficiente</option>
                 <option value='7'>buono</option>
          </select><br />

Anche in questo caso, se il visitatore fa una scelta dal menu e poi invia il modulo senza completarlo, allora perde la selezione. Possiamo rimediare, trasformando il codice visto sopra inserendo l'istruzione Sar-At SELECTEDIF:

          Voto: <select name='voto'>
                 <option {SELECTEDIF voto 5}>insufficiente</option>
                 <option {SELECTEDIF voto 6}>sufficiente</option>
                 <option {SELECTEDIF voto 7}>buono</option>
          </select><br />

Quando Sar-At trova l'istruzione SELECTEDIF la sostituisce con il codice HTML che seleziona l'opzione indicata se il campo ha il valore specificato. Nel nostro esempio, il modulo verrà rappresentato alla prima apparizione così:

Il valore "sufficiente" è pre-selezionato perché nel creare la sezione abbiamo detto a Sar-At che il valore di default di "voto" è sei.

SELECTEDIF può venire utilizzato in combinazione con una Vista. Immaginate di avere una sezione che contiene tutti i personaggi di Walt Disney. Voi volete creare un menu prendendo tutti i nomi e li presenta dentro un menu. Create una vista che seleziona tutti i record e chiamatela "disney", poi scrivete:

<select name='disney'>{BEGIN disney}<option {SELECTEDIF disney {id}}>{nome_personaggio}</option>{END disney}</select>

Checkbox

CHECKBOX completa la gestione della selezione utente in Sar-At. Concettualmente si tratta di un parente stretto di RADIOBUTTON e SELECTEDIF visti poco sopra. La sintassi è semplicemente

  {CHECKBOX nomecampo}

Modifichiamo ancora il nostro modulo rosa per fare un esempio. Aggiungendo lo HTML:

          <label>Clicca qui se vuoi venire iscritto alla mailing list:
                  <input type='checkbox' name='mailing' />
          </label>

L'aspetto del modulo diventa:

Per consentire a showForm di ricordare lo status della casella di selezione "mailing list", il codice diventa:

          <label>Clicca qui se vuoi venire iscritto alla mailing list:
                  {CHECKBOX mailing}
          </label>

Upload

Con la stessa semplicità con cui voi potete usare Sar-At per caricare un documento sul server, è possibile consentire ai vostri visitatori di fare lo stesso. Il visitatore registrato del sito può caricare una foto nel proprio profilo (e realizziamo una community), o il partecipante a un concorso può mandare il suo elaborato, o chi scrive al modulo "contattaci" del sito può allegare il suo curriculum vitae. ",

Nelle sezioni modulo ordinarie

La vostra sezione modulo deve contenere un capo di tipo file, naturalmente. Questo permette a Sar-At di sapere in quale posizione sul disco rigido vadano registrati i documenti dei visitatori. Immaginiamo di aver creato una sezione modulo chiamata "autoregistrazione" e dentro di essa abbiamo messo un campo di nome "autoscatto" per consentire ai visitatori di pubblicare il proprio primo piano.

Nel vostro HTML dovrete aggiungere questa riga di codice:

  <input type='file' name='image_autoscatto' />

In altre parole, dovete usare come name dell'input la parola image_ seguita dal nome del campo.

Nelle sezioni modulo aggiornabili

Immaginiamo adesso che sia necessario per un vistatore di sostituire la sua foto con una versione più recente. Se volete consentirgli questa manovra, la vostra sezione modulo deve essere dichiarata aggiornabile, come è spiegato in questo stesso capitolo poche pagine indietro.

Lo HTML dovrà contenere due righe, così:

  <input type='file' name='image_autoscatto' />
  <input type='hidden' name='autoscatto' value='{autoscatto}' />

La prima riga consente al visitatore di caricare una nuova foto. La seconda riga memorizza il nome della foto precedente in modo che venga conservato se il visitatore cambia altre informazioni (per esempio, il suo indirizzo email) ma non questa.

Consultare il materiale dei visitatori

Abbiamo spiegato come il Sar-At possa spedire al vostro indirizzo di posta elettronica tutto il contenuto di tutti moduli compilati dai visitatori.

Se il visitatore carica documenti nel compilare il modulo, il messaggio email che vi raggiunge contiene un link seguendo il quale potrete scaricare i documenti.

Mantenere riservato il materiale dei visitatori

Anche il materiale caricato dai visitatori può venire registrato da Sar-At in una zona del disco rigido del server inaccessibile via web. Si usa il meccanismo di showFile.php, che è spiegato nel capitolo sei di questo libro.

Un esempio: il forum

Come abbiamo già spiegato in questo stesso capitolo, una sezione modulo è utilizzabile anche come sorgente di pagine Sar-At. Vediamo, per esempio, come costruire un semplice forum. Tutti i contributi dei visitatori vengono aggiunti l'uno di seguito all'altro.

  Benvenuti nel nostro forum.
  <table>
  <tr>
          <th>
                 Data
          </th>
          <th>
                 Numero IP
          </th>
          <th>
                 Messaggio
          </th>
  </tr>
  {BEGIN forum}
  <tr><td>
          {lastMod}
  </td>
  <td>
          {authorId}
  </td>
  <td>
  {testo}
  </td></tr>
  {END forum}
  </table>
  <hr />
  <p>Inserisci qui il tuo contributo:</p>
          <form action="showForm.php" method="post" name="myDemoForm">
                 <input type="hidden" name="template" value="forum" />
                 <textarea name="testo" rows="5" cols="30"></textarea>
                 <br />
                 <input type="submit" value="OK" accesskey="O" />
          </form>

Per far funzionare l'esempio sono necessarie una sezione modulo, chiamata forum, che contiene solo un campo chiamato "testo" di tipo Testo Lungo. La pagina mastro riportata qui sopra è sia la pagina mastro della sezione, sia la pagina destinazione del modulo. La vista "forum" si limita a riportare tutti i record, senza filtro, in ordine di data.

Il blog

Dal menu Pagine, la voce Aggiungi modulo… vi permette di caricare nel vostro sito soluzioni precotte composte da sezioni, viste e HTML pronte per l'uso. Uno di questi moduli è il blog. Se proverete a caricarlo vedrete che esso è composto di due tabelle: una per i post dell'autore del blog, l'altra per i commenti dei visitatori. Questi ultimi vengono ricevuti con showForm.

È interessante notare che il meccanismo realizzato in quel caso combina l'uso di un Portale (si veda in merito il capitolo 2). Quando stiamo mostrando il post numero X del blog con showPage (sarebbe lo stesso con showTwig), mostriamo il record con id X della tabella blog, e aggiungiamo nella sua pagina mastro uno HTML simile a questo:

  <form action='/showForm.php' method='post'>
   <input name="template" value="comments" type="hidden" />
   <input type="hidden" value="{id}" name="id_post_commentato" />
   <label for="title">Titolo</label></br>
   <input name="title" id="title" type="text" /></br>
   <label for="reply">Commento</label></br>
   <textarea id='reply' title="reply"></textarea></br>
   <input type="submit" value="Invia" />
  </form>

In questo modo il campo "id_post_commentato" della tabella commenti conterrà automaticamente l'id del pst, e ciò consente al Portale di funzionare.

Moduli: risposte a domande frequenti

Campi nascosti

Oltre alla compilazione da parte dell'utente, Sar-At accetta all'interno dei moduli i campi nascosti? ?

Sì. In questo caso alcuni campi della sezione si autocompilano. Ovviamente, tutte le inserzioni compilate da tutti i visitatori conterranno lo stesso valore. Per esempio, in una sezione che contiene il campo chiamato "sorgente", tutti i contributi dei visitatori conterranno il valore "web" se nel modulo HTML io scrivo:

  <input type="hidden" name="sorgente" value="web" />

Questa metodologia può essere piuttosto utile in diversi casi. Per esempio, se abbiamo un sito multilingue, potremmo scrivere nel modulo in italiano:

  <input type="hidden" name="language" value="1001" />

Nel modulo in inglese inseriremmo invece:

  <input type="hidden" name="language" value="1002" />

In questo modo, i contributi in italiano e quelli in inglese verranno registrati nella medesima sezione ma ciascuno sarà correttamente etichettato.

Nel manuale Mantenere il sito troverete un elenco esaustivo dei codici di lingua.

Un'altra possibilità: inviare i visitatori del nostro sito che hanno prenotato un acquisto al sito di un albergo partner, comunicando attraverso i campi nascosti i dati come il nostro codice venditore, in modo da incassare la provvigione.

Campi incorporati di Sar-At e valori di default

Posso chiamare "title" uno dei campi del modulo, in modo che quello che scrive il mio utente finisca proprio in quel campo"?

Certamente, è anzi una ottima idea. In generale, tutti i campi predefiniti di Sar-At possono venire utilizzati nei moduli, tanto quanto i campi definiti dall'utente, con l'eccezione di id. Tutti sono considerati opzionali e hanno un valore di default. Se il campo non viene compilato o autocompilato, assume il valore riportato nella tabella seguente:

Campo

Valore

Id

Un numero di serie autocompilato

masterId

Zero

lastMod

Data di compilazione del modulo

AuthorId

Numero IP del visitatore o nome del visitatore se utente registrato

ModifierId

Numero IP del visitatore o nome del visitatore se utente registrato

Language

1001 (italiano Unicode)

Visibile

Y (sì)

SaratPremium

0 (Non riservata, leggibile da chiunque)

Title

Modulo senza titolo

Keywords

(nessuna)

Description

(nessuna)

Creation

Data di compilazione del modulo

Hit Counter

Disabilitato

masterPage

(pagina mastro di default di questa sezione)

saratUrl

Indirizzo amichevole della pagina

Notifiche multiple

Quando definisco un modulo posso indicare una casella mail che riceve notifiche ogni volta che il modulo viene compilato. Ma se desidero che le notifiche arrivino a più di una casella delle nostre?

Potete indicare più caselle, separate da virgole.

Trasformazione

Posso trasformare una sezione modulo in sezione ordinaria e viceversa?

Sì. A partire dalla versione 11.0 di Sar-At si possono trasformare le sezioni modulo in sezioni non-modulo e viceversa, usando la linguetta Proprietà della sezione. Attenzione, però, le sezioni modulo create in questo modo sono automaticamente a massima sicurezza -- in pratica: una sezione modulo creata con un vecchio Sar-At; che non è ancora stata posta in condizioni di massima sicurezza; e che trasformiamo prima in sezione non-modulo e poi nuovamente in sezione modulo non torna alle condizioni iniziali, ma diventa a massima sicurezza.