Rules: action con IF

4 contenuti / 0 new
Ultimo contenuto
Rules: action con IF

Ciao all, sto realizzando un sito e via Rules sto cercando di fare questa cosa:

Evento: inserimento contenuto
Condizione:
* contenuto di tipo "articolo"
* utente anonimo

(Ora nasce il problema)
Azione:
* Controllo se l'utente non mi ha inserito una email gia' registrata nel sistema nel campo field_email
* Se non e gia' registrata
* salvo il nuovo utente
* memorizzo lo uid dell'utente
* ricavo lo uid dell'utente dalla email
* associo il nodo all'utente allo uid sopra preso

E' possibile fare una AZIONE con degli IF ?
Per creare l'utente c'è la ACTION apposita. Per ricavare lo UID posso andare via PHP. Per associare il nodo posso andare via PHP. Ma l'IF ?

Grazie.

M.

Drupal Version:

Vi riscrivo la action perché si è persa l'indentazione:

Azione:
- Controllo se l'utente non mi ha inserito una email gia' registrata nel sistema nel campo field_email
- Se non e gia' registrata
--- salvo il nuovo utente
--- memorizzo lo uid dell'utente
- ricavo lo uid dell'utente dalla email nel sistema
- associo il nodo all'utente allo uid sopra preso

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Non sarebbe più lineare creare 2 regole, usando il controllo sulla mail come condizione per l'una e per l'altra?

vedi se quello la soluzione al mio problema può fare al caso tuo.

http://www.drupalitalia.org/node/19078

//trovo il nodo in cui il campo email è uguale alla mail dell'utente loggato
global $user;
$query = new EntityFieldQuery;
$result = $query ->entityCondition('entity_type', 'node', '=')
->entityCondition('bundle', 'nome_del_mio_content_type', '=')
->propertyCondition('status', 1)
->fieldCondition('nome_del_mio_campo_email', 'email', $user->mail, '=')
->execute();

//prendo il nid
foreach ($result as $k){
foreach ($k as $v){
$nido=$v->nid;
}
}

//carico il nodo appena trovato e imposto l'autore con l'utente loggato e salvo il nodo.
$nodolo = node_load($nido);
$nodolo ->uid = $user->uid;
node_save($nodolo);