Regola per notifica e-mail

11 contenuti / 0 new
Ultimo contenuto
Regola per notifica e-mail

Salve a tutti, mi occorrerebbe un aiuto per terminare una regola che permette di inviare una mail agli appartenenti ad un ruolo. Questo deve avvenire SOLO SE gli utenti appartenenti a quel ruolo nel proprio profilo hanno spuntato la casella "Voglio ricevere notifiche via e-mail".

Ho già impostato il lavoro e le mail vengono spedite al ruolo selezionato. Devo aggiungere un'altra condizione, cioè che sia spuntata la casella nel profilo. Se l'utente non ha la casella spuntata l'e-mail non viene inviata a quell'utente (ma agli altri ovviamente sì).

Nel contenuto di cui inviare le notifiche ho già creato il campo Booleano "Invia mail". Nel contenuto profilo utente (admin/config/people/accounts/fields) ho creato il campo "Voglio ricevere notifiche via e-mail".

La regola creata si qui:

EVENTS
Dopo il salvataggio di un nuovo contenuto
Dopo l'aggiornamento di un contenuto esistente

Condizioni
Il contenuto è di tipo (ho inserito il tipo di contenuto di cui inviare notifica)
Confronto di dati (il field-e-mail ha valore SI)

Azioni
Invio di email a tutti gli appartenenti ad un ruolo (ruolo in questione selezionato).

Ora, come dicevo, devo collegare un contenuto all'altro. Cioè se nel contenuto pagina profilo la casella è spuntata, il contenuto principale viene spedito.
Qualcuno può darmi qualche suggerimento?

Drupal Version:

A naso ti direi di provare così:

1 - 'Esiste un'entità che ha un valore per una proprietà', aggiungendola tra le azioni. E vedi se riesci a filtrare l'entità utente per il valore 1 (sì) del campo Notifiche.

2 - Definisci una variabile utilizzando questa entità. In modo da avere un valore pronto da utilizzare.

3 - Invii la mail a questa variabile che rappresenta il tuo sottoinsieme di utenti.

(mi sono spiegata da cani. faccio qualche prova su una mia installazione di drupal7 poi torno qua e lo scrivo meglio. ma spero di averti dato uno spunto).

...enter at your own risk...

Più o meno ho capito.. :)
Mi è servito ad accorgermi della possibilità di inserire actions fra le azioni. Ho anche provato a mettere in pratica il tuo suggerimento, se ho capito bene:

Azioni >> Aggiungere action >> Caricamento entità data una proprietà >> utente >> tipo di entità da caricare: Utente >> La proprietà tramite cui selezionare l'entità: "notifica via mail" >> (ne ho due: site:current-user:field-notifica-e-mail o node:author:field-notifica-e-mail) ho scelto node:author:field-notifica-e-mail >> nome variabile: notifica_mail

Però mi son fermato lì..
Poi una cosa che non capisco.. perchè "notifica via mail" è un'azione e non una condizione? Ma allora devo modificare tutta la struttura della regola?

In realtà ieri sera ci ho provato a lungo ma non riesco a salvare il blocco di utenti filtrato come serve per poi utilizzarlo come destinatario.
Avevo anche pensato a inserire un loop ma non ho approfondito.
Qualcosa del tipo carica un utente, vedi se combacia con quello che voglio io, se combacia mandagli un'email.
Comunque sì, è possibile che la struttura della regola vada modificata. Come non so. Rules sarebbe un modulo potentissimo, cioè lo è, se non fosse così farraginoso e anti-intuitivo.

...enter at your own risk...

Eppure sembrava semplice, seguendo la struttura della mia regola:

- Dopo la creazione/salvataggio del contenuto (di seguito CONTENUTO A)
- Se "field-e-mail" ha valore SI (campo presente in CONTENUTO A)
- E se "field-notifica-e-mail" ha valore SI (campo presente nella pagina del profilo - CONTENUTO B)
- Invia la mail agli appartenenti al ruolo (se hanno spuntato la casella).

Basterebbe intercettare "field_notifica_e_mail" anche se non è presente nello stesso contenuto..

Scusa. Esistono anche utenti che hanno spuntato la casella ma di altri ruoli?

...enter at your own risk...

Nessun utente ha spuntato la casella perchè non l'ho ancora inserita.

Al momento ho creato 3 regole, una per ogni ruolo a cui inviare l'e-mail. Nella pagina admin per l'inserimento del contenuto è possibile spuntare la casella:

"Invia mail al ruolo 1"
"Invia mail al ruolo 2"
"Invia mail al ruolo 3"

Effettivamente, ora che mi ci fai pensare, i ruoli sono più di uno. E per ognuno deve essere studiata la combinazione "Invia mail"/"Voglio riceve notifica".

Quindi il sottoinsieme da creare è quello degli utenti che nell'ambito del ruolo X hanno attivato le notifiche.

...enter at your own risk...

Sì. Quindi TRE sottoinsiemi (uno per ogni ruolo)?

Se i nodi di cui mandi notifica sono anche diversi, potresti fare delle regole distinte.
Ma se l'evento scatenante è lo stesso, sì.
In teoria (ma non mi viene in mente come si possa fare) dovresti fare il fetch degli utenti in base alle condizioni (caso1) e chiamare l'elenco ottenuto con una variabile X1, idem per X2 e X3. Poi mandi la mail per il ruolo 1 alla variabile X1, e via di seguito.

...enter at your own risk...

Grazie dell'aiuto giuvax, vediamo se mi viene in mente qualcosa, o se qualcun altro ci vorrà dare una mano! ;)