templates per messaggistica

Ciao a tutti.

Sono nuovo di questo magico framework, più in generale sono nuovo del paradigma “stretto” MVC ma vedo che mi sta piacendo :) Noto con piacere dell’esistenza di una piccola community italiana, speriamo di riuscire a darci una mano.

Veniamo al dunque: vorrei estendere il modulo Yiiuser, ma non solo, per rendere maggiormente astratta la messaggistica automatica in modo da avere, ad esempio per la conferma dell’utente, non solo un messaggio il cui testo è embedded nel codice, ma venga tratto da una tabella di un db.

la tabella tbl_message_templates (ad es.) potrebbe avere:

id|subject|nessage

ed avere in message


Gentile {NomeCognome},

grazie per essersi iscritto in {NomeApp}

ecco il link per attivarsi {link}

e blabla bla…


In pratica, nel caso di yiiuser, il controller all’atto della spedizione della mail di conferma, compone un messaggio a partire da un template e sostituisce i valori sulla base dei valori compilati dall’utente e validati da Yii. Compilato il messaggio lo ripassa al mailer che si occupa di spedire il tutto all’utente che si sta registrando.

Mi sono reso conto che così facendo ho un controller che riceve i dati da un altro controller, anche se potrebbe essere più elegante dire che il controller riceve i dati dalla view del modulo “mailtemplates”. Da qui il dubbio, per quanto riguarda le regole di accesso alla view, su come fare al meglio questa cosa. mi seccherebbe infatti che l’utente non registrato potesse tramite url vedere con index.php/mailtemplates/view/id/ il messaggio…

a) restringo l’accesso ad un ipotetico ruolo “website” in modo che solo Yii possa leggersi l’output/view del messaggio risultante…ma esiste? non mi pare, ma magari non ho capito bene io come funziona il tutto

B) non passo niente alla view e mi arrangio a trarre il contenuto dal controller così come faccio adesso.

Mi piacerebbe sapere cosa ne pensate anche voi. Magari c’è già una estensione che fa tutto ciò da se’… :)

Un caro saluto

puoi creare un link a scadenza…no?

sì, lì ci ero arrivato, giuro :)

mi chiedevo solo come farlo nel modo più elegante e cioè:

a) faccio il model per la tabella “mailtemplates”, un controller per prelevare i valori utente, una view per sostituire ai placeholders i dati dell’utente.

B) il controller si arrangia a fare tutto e spara al mailer il messaggio già bello e compilato

caso a) devo capire come gestire i permessi di accesso all’output visto che la logica che ho scritto darà una URL accessibile ad un utente “guest” e io non volevo che ciò accadesse

caso B) parrebbe un po’ inelegante.

Scusate se forse prima sono stato un po’ troppo ridondante.