
Questo modulo è molto potente e ci viene in aiuto molteplici momenti, ma allo stesso tempo è abbastanza ostico da comprendere, soprattutto all'inizio.
Rules si utilizza quando vogliamo che in determinate situazioni o quando vengono soddisfatte delle "regole" (da noi impostate), il nostro sito web compia delle azioni, ad es. invii e-mail o visualizzi messaggi o compia reindirizzamenti o svariate altre azioni. Ricordo che per azioni "semplici", si può usare il modulo Trigger, gia' presente di default nel nostro Drupal 7.
Puoi scaricare Rules da qui, ma ha bisogno anche di Entity API.
In questa pagina riporto un semplicissimo esempio di utilizzo di questo modulo, ma invito vivamente a leggere la documentazione ufficiale.
Descrizione d'uso del modulo Rules
Tema: ho un sito in cui gli utenti autenticati possono creare contenuti e inserire commenti. Per disincentivare il comportamento maleducato da parte degli utenti, creo un ruolo utenti denominato Libro Nero in cui inserisco gli utenti "segnalati" e gli blocco la possibilita' di postare commenti. Voglio che quando un utente effettua il login, Drupal gli notifichi di essere stato inserito nel Libro Nero.
Svolgimento:
- abilito i moduli sopracitati e vado nella pagina di configurazione di Rules
- clicco su Add new rule
- assegno alla nuova regola: Nome = Utenti in castigo e React on event = User has logged in; quindi creo una regola che verra' richiamata nel momento in cui un utente effettua il login
- clicco su Salva e appare la pagina di riepilogo della regola, ora devo assegnare le condizioni e le relative azioni
- clicco su add condition (questo campo non è obbligatorio, ma serve ad inserire le condizioni della regola che determinano le azioni del sito)(possono essere piu' condizioni e possono essere unite da comandi OR e AND)
- inserisco come data selector = account ( questo e' uno dei punti ostici di questo modulo, consiglio di leggere la relativa pagina del manuale)
- e in Ruoli Value seleziono Libro nero (quindi questa regola funziona solo se l'utente autenticato e' stato inserito in questo ruolo)
- clicco su Salva e torno alla pagina del riepilogo della regola
- come si vede posso assegnare una nuova condizione o posso unire piu' condizioni tramite OR o AND (porte logiche)
- ora assegno una azione che Drupal deve svolgere nel caso la condizione della regola venga confermata
- clicco su add action
- scelgo Show a message in the site (praticamento voglio che venga mostrato un messaggio)
- inserisco Value (cioe' il testo del messaggio), Message type (cioe' se deve essere un messaggio: di stato, di errore o di avviso) e Repeat Message (cioe' se il messaggio deve essere ripetuto ogni volta che l'utente esegue il login)
- cliccando su Replacement Pattern si apre un elenco coi token che posso inserire nel messaggio (nell'esempio ho inserito il token: [account:name] per far visualizzare il nome dell'utente)
- clicco su Salva e torno alla pagina del riepilogo della regola e qui salvo le modifiche
- ora allo stesso modo visto sopra, inserisco una regola che fa visualizzare un messaggio di saluto agli utenti quando effettuano il login
- da notare che questa volta non inserisco una condizione quindi la regola si applica a tutti gli utenti che si autenticano
- e questo e' il risultato finale:
- quando achille (utente educato) effettua il login, Drupal visualizza un messaggio di saluto
- quando Mauro (utente maleducato) si autentica appare sia il messaggio di benvenuto che l'avviso che lui e' stato inserito nel Libro Nero
- da notare che il token [account:name] e' stato trasformato nel nome dell'utente Mauro
Commenti
Grande
Inviato da Alberto (non verificato) il
Complimenti per il sito! Mi è stato molto utile.
Ciao Alberto
Inviato da Vanni il
Ti ringrazio!!!
Salve, non conosco il modulo
Inviato da Paologaz (non verificato) il
Salve, non conosco il modulo rules ma di certo ho notato che trigger a me nel drupal 7 non funziona nemmeno per inviare email agli autori dei post quando ci sono nuovi commenti. Lei pensa che rules mi potrebbe aiutare anche a compiere azioni semplici come quella di cui parlavo?
Salve Paologaz, scusa il
Inviato da Vanni il
Salve Paologaz, scusa il ritardo. Trovo strano che tu abbia problemi ad settare "trigger", hai guardato la pagina che ho scritto io?
Comunque, puoi usare rules per il tuo scopo, ecco qualche link che puo' darti dei suggerimenti:
Ciao, io ho fatto esattamente
Inviato da Paologaz (non verificato) il
Ciao, io ho fatto esattamente come te tranne nell'indirizzo dove tu hai messo un indirizzo email io invece ho usato [node:author:mail], perché ho più utenti che scrivono nel sito.
Ciao Paologaz, ti ho risposto
Inviato da Vanni il
Ciao Paologaz, ti ho risposto anche su drupalitalia.org, se sei in locale con xampp o simili non riesci a mandare email con le impostazioni di default. Online trovi vari tutorial su come settere il server in locale per spedire email sia xampp, wamp, mamp ecc...
Alternative: appoggiarsi a servizi esterni per email (probabilmente a pagamento), caricare il sito su altervista giusto per test e dopo eliminarlo (gratis).
Aggiungo: Se provi a settere
Inviato da Vanni il
Aggiungo: Se provi a settere il server in locale, prima di tentare con Drupal che poi magari non si sa mai..., per vedere se l'hai configurato correttamente puoi copiare questo script su un file .php e mandare una mail, se ti arriva significa che il server e' ok e puoi cominciare a provarci con Drupal.