Personal tools
Come gestire l'iscrizione alle notifiche di un sito con le rule di Plone

Tutti in fila per iscriversi

May 09, 2013

Come gestire l'iscrizione alle notifiche di un sito con le rule di Plone

E' possibile permettere agli utenti di restare sempre informati sulle novità di un sito? Certo, con le contentrules e l'invio delle notifiche via mail

Lo ammetto, quando si avvicina il momento di scrivere un nuovo post del blog mi sembra sempre di non avere argomenti interessanti o di approfondire argomenti già raccontati (vedi i miei innumerevoli post sulle migrazioni, per esempio).

Poi, però, capita che un paio di giorni prima della scadenza (argomento già trattato da Ale in un post precedente) arrivi una richiesta di un cliente che mi accende la lampadina e mi da il LA per scrivere il mio prossimo articolo.

Il caso di studio che vi racconto è partito da una semplice richiesta:

Sarebbe possibile permettere agli utenti del sito di rimanere sempre aggiornati con i nuovi contenuti del sito?

Usiamo le contenrules! Un gioco da ragazzi!
Il mio primo pensiero è andato subito alle regole: una funzionalità nativa di Plone che permette di definire una (o più di una) certa azione da fare al verificarsi di un (o più di uno) determinato evento. Per esempio, in questo caso mi sarebbe bastato creare una regola che si attivava alla creazione di determinati contenuti, e come azione inizialmente pensavo di spedire una mail agli utenti utilizzando collective.contentrules.mailtogroup per gestire la lista di indirizzi. Non c'era da sviluppare nulla di nuovo e in due minuti impostavo il tutto. Più facile di così, si muore.

Ma la domanda nascondeva qualche trabocchetto (o come direbbe Data, un tracobbetto): infatti gli "utenti" potevano anche essere utenti anonimi, e gli utenti stessi dovevano potersi iscrivere liberamente alle notifiche, senza passare per un gestore intermedio (ingenuamente mi ero illuso di poter creare un form di richiesta con Products.PloneFormGen in modo che poi i gestori potessero raccogliere le iscrizioni e gestire le liste di notifiche direttamente nella regola).

A questo punto, dopo alcune ricerche, era chiaro che nessuno dei prodotti disponibili faceva al caso mio.
Dovevo quindi studiare un modo per soddisfare questa richiesta e donare alla comunità un nuova utile funzionalità. Per questo è nato collective.contentrules.subscription.

E' un prodotto molto semplice che ha due componenti principali: una nuova azione per le regole e un tool che memorizza le varie sottoscrizioni.

Nell'azione da associare alle regole si possono inserire il soggetto e il testo della mail che verrà poi spedita, e quando viene scatenata questa azione, la lista di email a cui spedire la notifica è presa interrogando il tool e recuperando la lista di indirizzi a lei associata.

Lato utente, è presente una vista che mostra tutte le possibili regole disponibili (ovviamente solo quelle che hanno la nostra nuova azione impostata), da cui può scegliere a quali iscriversi. E' previsto anche un controllo di prevenzione per lo spam sfruttando collective.z3cform.norobots.

Iscrizione notifiche

Esiste poi anche un pannello di controllo per i gestori del sito, che permette di avere una panoramica sullo stato delle iscrizioni ed eventualmente intervenire per rimuoverne.

Controlpanel rules

Il tutto ovviamente è versionato e disponibile su github, quindi se vi piace l'idea e volete contribuire a migliorarlo, siete i benvenuti :)


Questa è una versione di partenza e mancano diverse funzionalità utili che potrebbero essere introdotte nelle prossime versioni, come per esempio la possibilità da parte degli utenti di visualizzare le proprie iscrizioni ed eventualmente cancellarsi, e anche un maggior livello di sicurezza nella gestione delle sottoscrizioni (ad esempio con un passaggio di validazione e conferma dell'indirizzo inserito).

Filed under: , , ,
comments powered by Disqus