www.rassegnastampa.diocesipadova.it

www.rassegnastampa.diocesipadova.it

Quando ci è stato chiesto di rinnovare la Rassegna Stampa della Diocesi di Padova, il servizio era costituito da una newsletter giornaliera composta da una email e da un allegato HTML. Il corpo della email era costituito da un sommario di circa 20/30 articoli recuperati da fonti diverse, articoli raggruppati secondo un certo numero di rubriche. Il file allegato conteneva l'intera rassegna con il testo completo degli articoli ed era pensato per una lettura offline.

Il file HTML e l’email venivano generate ed inviate da un applicativo sviluppato ad hoc basato su Coldfusion e su MySQL. Non esisteva una controparte web vera e propria, tuttavia era possibile aprire nel proprio browser il singolo articolo, cliccando sul link nel sommario contenuto nel corpo della mail.  Non esisteva comunque un archivio online di tutte le rassegne pubblicate, né un motore di ricerca che consentisse di trovare un determinato articolo nell’intero archivio. Una volta cancellata la relativa email non vi era modo di recuperare i singoli articoli o la rassegna.

Il servizio doveva restare un qualcosa di "interno" alla diocesi di Padova, ovvero doveva essere riservato ai soli referenti diocesani, preti o laici che avessero incarichi all'interno della diocesi di Padova. Nel database esisteva l'elenco degli utenti iscritti al servizio, tuttavia la gestione di questi utenti risultava alquanto macchinosa. Ad esempio nel gestionale non era possibile cercare un dato utente, e dall'altro lato i singoli utenti potevano chiedere di essere inclusi nel servizio solo effettuando una telefonata od inviando una email alla redazione e comunicando le proprie generalità (incarico, parrocchia ecc…). Successivamente la redazione provvedeva all'inserimento dell'utente nel database.

Nell’arco dei 6 anni di vita della Rassegna (dal 2004 al 2010) il database era cresciuto fino a contenere oltre 64000 articoli, per un totale di più di 2500 rassegne. All'interno di ciascuna rassegna gli articoli venivano raggruppati per rubrica e quindi ordinati secondo un peso definito manualmente dal giornalista e quindi per testata.

Abbiamo deciso di utilizzare Drupal per implementare il nuovo servizio della rassegna stampa, servizio che da semplice newsletter si sarebbe trasformato in un sistema web centrico ad accesso limitato ai soli utenti registrati. Il progetto è stato svolto nell'arco di due mesi, ed ha comportato in primis l'importazione dell'intero database degli articoli all'interno di Drupal ed in secondo luogo l'importazione del database utenti.

La nuova Rassegna Stampa è costituita da un sito web contenente l'intero archivio ricercabile degli oltre 64000 articoli che sono stati recuperati mantenendo l'impostazione originale, ovvero la suddivisione per rassegna stampa e quindi all'interno di ciascuna rassegna il raggruppamento per rubrica e l'ordinamento per peso e quindi testata.

Come motore di ricerca è stato utilizzato Apache Solr, appositamente installato e configurato su di un VPS secondario onde non appesantire la macchina principale che ospita il sito.

Per l'importazione abbiamo utilizzato la combinazione di moduli Migrate (versione 1), Table Wizard e Migrate Extras, oltre a qualche piccolo script SQL necessario per effettuare degli aggiustamenti sui dati a causa di incongruenze sugli indici causati da interventi sul database avvenuti nel corso degli anni che avevano modificato alcune voci delle tabelle e che fortunatamente è stato possibile ricostruire. La struttura dei dati era piuttosto semplice, come è possibile visualizzare dallo schema seguente:

 Schema della struttura del database originario

Per creare la rassegna stampa ci siamo serviti di due tipi differenti di contenuti, il contenuto "rassegna" che sostanzialmente fungeva da contenitore ed il contenuto "articolo". Utilizzando poi i moduli CCK Node Reference e BackReference abbiamo creato delle relazioni univoche tra il singolo articolo e una determinata rassegna. Abbiamo fatto uso anche dei moduli Node Reference URL Widget e Node reference views per ottimizzare la fase di inserimento degli articoli.

Per generare le pagine della rassegna, degli articoli, i sommari, le pagine che raggruppano gli articoli per rubrica e per testata è stato poi fatto un ampio uso di Views e di alcuni moduli accessori (Views Arguments Extras, Views attach, Views Bonus Pack). La singola rassegna è generata da una vista di tipo contenuto nodo, attaccata al contenuto "rassegna", dove gli articoli filtrati in base al campo riferimento nodo della specifica rassegna, vengono raggruppati per rubrica, quindi ordinati in base ad un indice numerico impostato in fase di stesura dal redattore, e quindi, a partià di indice, ordinati per testata ed infine alfabeticamente per titolo.

La pagina della rassegna stampa con il sommario degli articoli

L'immagine sottostante mostra invece la pagina del singolo articolo:

 Pagina del singolo articolo della rassegna stampa

Abbiamo reso auto esplicativo il percorso URL delle singole rassegne utilizzando i moduli Token, Transliteration e Pathauto; ad esempio, la rassegna del 10 luglio 2007 risulta raggiungibile all'indirizzo www.rassegnastampa.diocesipadova.it/rassegna/2007/07/10 e la sua versione stampabile www.rassegnastampa.diocesipadova.it/rassegna/2007/07/10/stampa. Inoltre tutti gli articoli in tale rassegna avranno un indirizzo del tipo www.rassegnastampa.diocesipadova.it/rassegna/2007/07/10/titolo-articolo.

I menù di navigazione del sito e le pagine dei termini della tassonomia (le testate e le rubriche) sono state generate utilizzando la combinazione di moduli Views, Taxonomy Menu, Taxonomy Views Integrator (TVI). Nell'immagine sottostante vediamo il risultato che è stato ottenuto per la navigazione per rubrica:

 Pagina delle rubriche

In colonna centrale vi è la vista principale con l'elenco degli articoli in quella rubrica ordinati per data di creazione decrescente. Il menù superiore è stato ottenuto con taxonomy_menu, il blocco in alto in colonna destra è una normale vista con un argomento (il taxonomy ID) in modalità sommario.
L'uso di TVI ha permesso di utilizzare delle viste differenti associate a ciascun vocabolario, in particolare sono stati utilizzati due vocabolari uno per le rubriche ed uno per le testate di giornale.
Si è reso inoltre necessario l'utilizzo di una vista di tipo pagina cui viene passato un argomento, vista che va ad intercettare la visualizzazione predefinita per i termini della tassonomia utilizzando il percorso /taxonomy/term/%. Sebbene TVI preveda la possibilità di utilizzare la vista di default e non richieda l'obbligo di una vista pagina, in realtà non inserendo la vista pagina, il blocco sommario (il primo in colonna destra) restituiva dei path vuoti per le singole rubriche.
Tale soluzione consente alla redazione di aggiungere, togliere e riordinare le rubriche e le testate semplicemente modificando i singoli vocabolari in totale autonomia e senza richiedere il nostro intervento; tutti gli aggiornamenti effettuati sui due vocabolari inoltre si ripercuotono automaticamente sul menù di navigazione. Inoltre l'ordinamento delle voci del vocabolario rubriche, si ripercuote direttamente sull'ordinamento degli articoli all'interno della specifica rassegna.

Per generare la newsletter quotidiana, composta del solo sommario (abbiamo infatti eliminato l'allegato) ci siamo serviti del modulo SunMailer Newsletter che rispondeva appieno alle nostre esigenze e vi abbiamo apportato alcune piccole modifiche. Si era anche ipotizzato di utilizzare il modulo Simplenews e di generare il contenuto della newsletter sfruttando la funzione views_embed_view (), ma la mail generata da SunMailer poteva essere personalizzata più facilmente.

Per quanto riguarda il sistema di accesso, ora gli utenti possono effettuare la registrazione al sito in modo autonomo, ma spetta poi alla redazione approvare o meno la richiesta. A tal fine vengono richiesti alcuni dati personali che possano comprovare l'assegnazione del singolo ad un incarico di qualche tipo all'interno della Diocesi di Padova. Abbiamo utilizzato il modulo Content Profile per la costruzione del profilo utenti e ci siamo serviti del modulo Content Taxonomy (già utilizzato in precedenza anche per le rubriche e le testate) per incorporare l'elenco completo degli incarichi diocesani e delle parrocchie della diocesi di Padova da cui il singolo utente potesse effettuare la propria scelta. Abbiamo inoltre utilizzato i moduli Legal, LoginToboggan, Change password, Password toggle per migliorare l'esperienza utente.

Alcune procedure sono state inoltre automatizzate utilizzando il modulo Rules di cui abbiamo fatto un ampio uso. Tre le tante regole create:

  • abbiamo automatizzato la creazione quotidiana del contenuto "rassegna"
  • abbiamo fatto in modo che pubblicando il contenuto di tipo "rassegna" vengano pubblicati tutti gli articoli a questa collegati e viceversa che questi vengano impostati come "non pubblicati" nel momento che viene tolta dalla pubblicazione la relativa rassegna
  • abbiamo introdotto alcune automatizzazioni volte a guidare l'utente durante il primo accesso al sito (redirect forzato ad alcune pagine in caso si verifichino alcune condizioni ecc…).

Per il frontend è stato utilizzato un tema basato su Fusion ed in particolare per ridurre i costi abbiamo scelto di acquistare e personalizzare il tema Fusion Early Edition.

E' stato infine sviluppato un piccolo modulo contenente alcune personalizzazioni, tra le quali delle modifiche all'interfaccia di amministrazione e alle pagine del profilo utente.

Infine un ultimo accenno ad alcune ottimizzazioni effettuate onde migliorare le prestazioni del sito. Inizialmente, dato l'elevato numero di nodi, avevamo optato di utilizzare un VPS dedicato ed in particolare di utilizzare Pantheon, una soluzione Drupal altamente ottimizzata basata su Pressflow, reverse proxy Varnish e Memcached, tuttavia dato che il numero di accessi autenticati difficilmente avrebbe superato il migliaio al giorno per la natura stessa di prodotto riservato ad una cerchia ristretta di utenti, abbiamo optato per una scelta più classica, installando il tutto su di un VPS condiviso con altri siti a basso traffico. Oltre alle ottimizzazioni standard (Modalità di cache normale, compressione della pagina, cache blocchi ed ottimizzazione CSS e JS), abbiamo attivato selettivamente la cache per alcune viste utilizzando il modulo Views content cache.

Qui sotto un elenco completo dei moduli custom utilizzati per questo progetto: