perché non funziona? [:global:site-date-raw] - [account:user-created-raw]

3 contenuti / 0 new
Ultimo contenuto
perché non funziona? [:global:site-date-raw] - [account:user-created-raw]

Ho sviluppato questo codice con "triggered rules"
in cui sottraggo la data attuale alla data di registrazione delll'user....
ma non mi fa l'operazione. Perchè? Manca qualche virgola? Qualche parentesi? non lo so! Ho sfogliato il codice php diverse volte e quello che ho scritto sembra giusto, perchè non mi sottrae i valori tra loro?

array (
  'rules' =>
  array (
    'rules_add_user_role_html001' =>
    array (
      '#type' => 'rule',
      '#set' => 'event_user_login',
      '#label' => 'Add user role html001',
      '#active' => 1,
      '#weight' => '0',
      '#categories' =>
      array (
        0 => 'Modifica',
      ),
      '#status' => 'custom',
      '#conditions' =>
      array (
        0 =>
        array (
          '#weight' => 0,
          '#info' =>
          array (
            'label' => 'User has role(s)',
            'arguments' =>
            array (
              'user' =>
              array (
                'type' => 'user',
                'label' => 'User',
              ),
            ),
            'module' => 'User',
          ),
          '#name' => 'rules_condition_user_hasrole',
          '#settings' =>
          array (
            'roles' =>
            array (
              0 => 3,
            ),
            'operation' => 'OR',
            '#argument map' =>
            array (
              'user' => 'account',
            ),
          ),
          '#type' => 'condition',
        ),
        1 =>
        array (
          '#weight' => 0,
          '#type' => 'condition',
          '#settings' =>
          array (
            'number1' => '[:global:site-date-raw] - [account:user-created-raw]',
            'number2' => '604800',
            'operation' => 'greater',
            '#eval input' =>
            array (
              'token_rules_input_evaluator' =>
              array (
                'number1' =>
                array (
                  0 => 'account',
                  1 => ':global',
                ),
                'number2' =>
                array (
                  0 => ':global',
                ),
              ),
            ),
          ),
          '#name' => 'rules_condition_number_compare',
          '#info' =>
          array (
            'label' => 'Numeric comparison',
            'arguments' =>
            array (
              'number1' =>
              array (
                'label' => 'Number 1',
                'type' => 'number',
              ),
              'number2' =>
              array (
                'label' => 'Number 2',
                'type' => 'number',
              ),
            ),
            'module' => 'Rules',
          ),
        ),
      ),
      '#actions' =>
      array (
        0 =>
        array (
          '#weight' => 0,
          '#info' =>
          array (
            'label' => 'Add user role',
            'arguments' =>
            array (
              'user' =>
              array (
                'type' => 'user',
                'label' => 'User whos roles should be changed',
              ),
            ),
            'module' => 'User',
          ),
          '#name' => 'rules_action_user_addrole',
          '#settings' =>
          array (
            'roles' =>
            array (
              0 => 4,
            ),
            '#argument map' =>
            array (
              'user' => 'account',
            ),
          ),
          '#type' => 'action',
        ),
      ),
      '#version' => 6003,
    ),
  ),
)

Ciao dragossido, quello che vedo a primo acchito è un array e dovrei provarlo in un contesto per poterti dire cosa non va. Apri una Documentazione con allegato il file in cui il codice è incluso. Poi dammi il link.

Ciao

allora danzi, crea un drupal provvisorio e crea due ruoli: studente e insegnante

poi vai su rules e poi su importa

copi il codice che ho scritto qui e lo incolli

poi crei un utente con il ruolo di studente.
accedi con quello e vedrai che hai subito il ruolo di insegnante.

invece.......

array (
            'number1' => '[:global:site-date-raw] - [account:user-created-raw]',
            'number2' => '604800',
            'operation' => 'greater',
            '#eval input' =>
            array (

ovvero :

'number1' => '[:global:site-date-raw] - [account:user-created-raw]',

dece essere più grande di una settimana

'number2' => '604800',

.........

[:global:site-date-raw]

recupera la data attuale in formato UNIX timestamp format

[account:user-created-raw]

recupera la data in cui è stato creato l'user in formato UNIX timestamp format

.....
sottraendoli tra loro devono essere più grandi di 604800

ovvero una settimana

il processo logico mi ha portato a elaborare il codice che vedi,

[:global:site-date-raw]-[account:user-created-raw]

ho provato anche a mettere i valori tra parentesi?

([:global:site-date-raw])-([account:user-created-raw])

Ma comunque non funziona, non mi sottrae i valori tra loro!
perchè?