static function testConditions(&$PDOdb, &$user, &$object, $action, $conf) { $level = self::getLevelFromUser($user); $TRes = $PDOdb->ExecuteAsArray("SELECT d.rowid \n\t\t\t\t\tFROM " . MAIN_DB_PREFIX . "dolidacticiel d \n\t\t\t\t\tLEFT JOIN " . MAIN_DB_PREFIX . "dolidacticiel_user du ON (du.fk_dolidacticiel = d.rowid AND du.fk_user="******")\n\t\t\t\t\tWHERE FIND_IN_SET('" . $action . "', d.action) AND d.level<=" . $level . " AND du.achievement IS NULL"); foreach ($TRes as $row) { $d = new TDolidacticiel(); $d->load($PDOdb, $row->rowid); $rights = !empty($d->rights) ? eval('return (' . $d->rights . ' == 1);') : true; $eval = !empty($d->cond) ? eval('return (' . $d->cond . ');') : true; if ($eval === true && $rights === true) { $k = $d->addChild($PDOdb, 'TDolidacticielUser'); //var_dump($d->TDolidacticielUser); $d->TDolidacticielUser[$k]->fk_user = $user->id; $d->TDolidacticielUser[$k]->achievement = 1; $d->save($PDOdb); setEventMessages('GG WP ' . $d->code . ' : ' . $d->title . "\n" . $d->description, null); } } }