Guide e tutorial pratici per joomla e le sue estensioni
Guide e tutorial pratici per joomla e le sue estensioni

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.

offrimi un caffè

Commenti   

0 # alessio_ 2016-05-13 15:04
Ciao, vorrei utilizzare questo sistema (Joomla+chronoforms)in azienda, per digitalizzare i test di collaudo dei macchinari che produciamo. Attualmente i documenti cartacei si articolano su una media di 120 domande che inevitabilmente non vengono compilate tutte in un unica sessione. La mia domanda (visto che le altre caratteristiche che richiedo sono tutte soddisfatte), è possibile salvare un form non completato e richiamarlo successivamente per finire di compilarlo?

Grazie e complimenti per gli articoli
0 # giusebos 2016-05-13 15:17
potresti creare un form che salva i risultati in una tabella, nessuno ti impedirebbe di editare aggiungere le informazioni in un secondo tempo. Naturalmente dovresti usare l'accoppiata chronoforms-chronoconnectivity, ma leggendo le altre guide vedrai che non è impossibile
0 # Francesco Cartei 2016-08-27 12:18
Salve,
complimenti per i tutorial che sono scritti in linguaggio semplice, puntuale e comprensibile!
Una domanda :)
Io ho costrutio un form che crea e salva sul server il PDF (come brillantemente spiega questa guida) ma anche tutti gli altri dati del form (ad esempio: il nome, il cognome, ecc.). Poi ho creato un form con Chronoconnectivity in posso scorrere tutti i record precedentemente inseriti col form di Chronoforms. E veniamo al punto: è possibile salvare anche il path del link nella database, cosicché da Chronoconnectivity posso visualizzarlo insieme alle voci 'nome', 'cognome', ecc.?
Grazie anticipatamente :)
0 # Francesco Cartei 2016-08-27 12:59
Salve,
ho trovato la soluzione: basta creare un campo in più nella tabella collegata al form di Chronoforms denominata 'pdf_file' (o il nome scelto). Quindi il path viene salvato nel database e di conseguenza può essere visualizzato correttamente in Chronoconnectivity.
Ora, la domanda cambia: è possibile dal front list, avere la voce PDF linkabile direttamente al documento PDF? Ho visto che c'è un plugin download, ma non sono riuscito ad impostarlo. Credo che sarebbe utile avere una guida per creare gestionale in cui richiamare anche documenti PDF :)
Grazie anticipatamente
0 # Pasquale 2016-08-28 21:52
Ciao, ma il file pdf generato si apre nella stessa finestra del form. Quale è l'opzione per aprire il pdf in una finestra nuova?
0 # tonino 2016-11-24 12:43
ciao io ho un problema strano installo l'action ma non la visualizzo nel datamanagement!! da cosa può essere docuto?
0 # serpe76 2017-02-11 06:35
buongiorno, non riesco a registrarmi sul vostro sito errore: L'ultima richiesta è stata negata perchè contiene un Invalid Token (operazione non valida). Ricarica la pagina e riprova.

e non avete un modulo contatti attivo
0 # giusebos 2017-02-11 10:00
Citazione serpe76:
buongiorno, non riesco a registrarmi sul vostro sito errore: L'ultima richiesta è stata negata perchè contiene un Invalid Token (operazione non valida). Ricarica la pagina e riprova.

e non avete un modulo contatti attivo

Svuota la cache del tuo browser
0 # Francesco74 2017-10-13 13:23
Salve, ho un problema con tcpdf + chronoformsV5; ho seguito alla lettera i passaggi sopra elencati ma alla fine il link che viene creato è errato, è del tipo: "http:///var/www/html/virgilioempoli/htdocs/components/com_chronoforms5/chronoforms/pdfs/Valutazione_Rischi_Alternanza_SL/allegato_d_20171013122533.pdf".
Il file all'interno della cartella sul server è stato creato, ma cliccando sul link non mi trova nulla: mi dice che il file non è stato trovato su questo server.
Come posso risolvere???
GRAZIE
0 # giusebos 2017-10-13 19:14
Citazione Francesco74:
Salve, ho un problema con tcpdf + chronoformsV5;....


Cosa succede con il percorso standard, ovvero non inserendo nulla?
0 # Stefano 2019-01-03 15:01
Salve a tutti,
dopo aver creato il modulo con i campi, vado su "setup" per il settaggio del form e le diciture in "On Submit" - "HTML (Render Form), Display Message, Email" non vendono salvate...come mai?
Come posso risolvere?
Grazie

Per pubblicare un commento devi registrarti