Chronoforms V5 contiene una funzionalità per installare azioni create da terzi. Le azioni sono quelle funzionalità specifiche per fare qualcosa di specifico, come per esempio quella che invia una email oppure quella per inserire uno script. Al momento non ci sono molte azioni esterne da installare, anzi, che io sappia c'è nè una soltanto: quella per produrre un file PDF con il contenuto dei campi compilati.
Produrre un file pdf a partire dal contenuto di un form
La funzione è molto interessante, immaginate di voler rilasciare un qualche tipo di ricevuta dopo la compilazione del form oppure rilasciare una copia ad uso e consumo dell'utente che ha eseguito la compilazione.
Il meccanismo di funzionamento può variare in base alle necessità, vi è la possibilità di compilare il form e di visualizzare subito dopo aver premuto invia il pdf, oppure creare il file salvandolo in una cartella per poterlo "ripescare" successivamente, oppure la possibilità di inserire nella email il link dove scaricare il file salvato.
Generare un PDF da un form compilato con Chronoforms
Nella seguente guida prenderemo in considerazione la terza possibilità, quella di far compilare un form, e succesivamente all'invio dei dati per email, sia che la mail sia per l'utente o per l'amministratore (questo lo deciderete voi), nella mail sarà presente un link che ci farà scaricare il file direttamente.
Questa possibilità ci garantirà di avere un file univoco per compilazione, garantendoci inoltre che solo chi possederà il link potrà scaricare in file contenente, magari, delle informazioni riservate.
Creato questo meccanismo sarà comunque possibile rendere disponibile il link in un eventuale messaggio personalizzato che verrebbe visualizzato dopo l'invio del form compilato.
Iniziamo con l'installare l'azione che ci procureremo a questo indirizzo; portiamoci nel pannello di controllo di chronoforms e clicchiamo nell'icona "Install Action", nella casella di upload inseriremo il file appena scaricato.
Adesso fra le azioni nella zona "SETUP" in "Data management" troverete "TCPDF". Create il vostro form, e se siete alle prime armi, seguite questa guida: "creare un form di contatto avanzato con chronoforms" .
Trascinate l'azione appena installata "TCPDF" in "On submit" e posizionatela al primo posto prima di tutte le altre action.
Configuriamo l'action "TCPDF":
Dentro l'action ci sono vari parametri distribuiti su tre tabs: Basic, Advanced e Encryption, portiamoci in basic e configuriamo le seguenti voci secondo gli standard di un documento PDF:
- Document author: Inserite il nome dell'autore;
- Document Title: Inserite il titolo del documento;
- Document Subject: Inserite l'oggetto del documento;
- Document Keywords: Inserite le keywords del documento;
- Document File name: Inserite il prefisso del nome che avrà il documento, che nel nostro esempio sarà pdf_file (attenzione a questo nome che dovremo riusarlo più avanti);
- View: Scegliamo Save to Server;
- save path: Qui dobbiamo inserire il percorso assoluto del server se vogliamo salvare i documenti dentro una specifica cartella, se non inseremo niente il percorso di default sarà dentro la cartella /components/com_chronoforms5/chronoforms/pdfs/nome_tuo_forms/, mentre se volete inserire il percorso assoluto del vostro server con in aggiunta la directory o le directory dove volete che si depositino i file, lo ricaverete portandovi in configurazione globale di joomla>>sistema>>percorso log. Questo sarà la base per creare il vostro percorso: ricordatevi di eliminate /logs dal percorso;
- File name in Data/Files array: qui inserite il nome pdf_file;
- Orientation: Portrait;
- Format:A4
- Document header: L'intestazione del documento, un titolo a piacere;
- Contents: in questo box dovrete incollare del codice che potrete prelevare (leggasi copiare) pari pari dal template della email che verrà inviata, quindi portatevi in email e copiate ciò che troverete nel box Email Template.
Nel box "Email Template" dell'azione "email" andiamo ad aggiungere le informazioni necessarie per generare il link per scaricare il file, inseriamo alla fine del suo contenuto questa stringa:
<p>scarica il file con il riepilogo della tua compilazione {pdf_link}</p>
Voglio aggiungere che per come avete pensato il meccanismo del vostro form, potrebbe non essere necessario l'invio di nessuna email, così in tal caso sareste obbligati a realizzare a mano il codice con le informazioni che desiderate inserire nel pdf.
Di seguito un piccolo esempio riferito ad un form contenente solo nome, cognome ed indirizzo:
nome: {field_name}
cognome: {field_name}
indirizzo: {field_name}
Inutile dire che il codice potrà essere completato di tabelle e altro tipo di formattazione.
Occorrerà adesso inserire uno script php in una azione "Custom code" che inseriremo subito sotto l'azione "TCPDF", questo il codice che conterrà:
<?php $form->data['pdf_link'] = "<a href='{$form->files['pdf_file']['link']}' >scarica</a>"; ?>
Questo script consentirà di generare un link specifico per scaricare il file che avrà un nome univoco, grazie al fatto che il nome del file sarà composto dal prefisso "Document File name" (pdf_file nel nostro caso), più una serie di numeri che corrisponderanno alla data e ora della creazione.
Infine inseriremo in un eventuale messaggio di ringraziamento che verrà visualizzato dopo aver premuto salva, la stessa stringa usata nel template della email:
<p>scarica il file con il riepilogo della tua compilazione {pdf_link}</p>
Sarà possibile personalizzare la grandezza ed il tipo di font che verrà usato nel pdf editando le informazioni che troverete all'interno dell'azione "TCPDF" nella tabs "Advanced".
Questo tutorial 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.