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);
         }
     }
 }
コード例 #2
0
$code = 'PC1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'commercial', 'code' => $code, 'prev_code' => 'P6', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'PROPAL_CREATE', 'cond' => '$object->socid == self::getStaticId($PDOdb, "societe", "nom", "Ciel & Terre")', 'level' => 0, 'rights' => '$user->rights->propal->creer', 'mainmenutips' => 'a#mainmenua_commercial', 'tips' => 'a.vsmenu[href*="/comm/propal.php?action=create&leftmenu=propals"]', 'module_name' => 'propale'));
$d->save($PDOdb);
$code = 'PC2';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'commercial', 'code' => $code, 'prev_code' => 'PC1', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'LINEPROPAL_INSERT', 'cond' => '$object->product_type == 0 && $object->price === price2num(199.90)', 'level' => 0, 'rights' => '$user->rights->propal->creer', 'mainmenutips' => 'a#mainmenua_commercial', 'tips' => 'label[for=prod_entry_mode_free]', 'module_name' => 'propale'));
$d->save($PDOdb);
$code = 'U1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'home', 'code' => $code, 'prev_code' => 'P2', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'USER_CREATE', 'cond' => '$object->lastname === "Dupont"', 'level' => 0, 'rights' => '$user->rights->user->user->creer', 'mainmenutips' => 'a#mainmenua_home', 'tips' => 'a.vmenu[href*="/user/home.php?leftmenu=users"]', 'module_name' => 'user'));
$d->save($PDOdb);
$code = 'PJ1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'project', 'code' => $code, 'prev_code' => '', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'PROJECT_CREATE', 'cond' => '', 'level' => 0, 'rights' => '$user->rights->projet->creer', 'mainmenutips' => 'a#mainmenua_project', 'tips' => 'a.vsmenu[href*="/projet/card.php?leftmenu=projects&action=create"]', 'module_name' => 'projet'));
$d->save($PDOdb);
$code = 'INV1';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'products', 'code' => $code, 'prev_code' => 'P1', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'TINVENTORY_CREATE', 'cond' => '$object->title === "' . $langs->trans('DolidacticielTitleInventoryForTest') . '" && $conf->stock->enabled', 'level' => 0, 'rights' => '$user->rights->inventory->create', 'mainmenutips' => 'a#mainmenua_products', 'tips' => 'a.vsmenu[href*="/inventory/inventory.php?action=create"]', 'from_atm' => 1, 'module_name' => 'inventory'));
$d->save($PDOdb);
$code = 'INV2';
$d = new TDolidacticiel();
$d->loadBy($PDOdb, $code, 'code');
$d->set_values(array('mainmenu' => 'products', 'code' => $code, 'prev_code' => 'INV1', 'title' => $langs->trans('title' . $code), 'description' => $langs->trans('description' . $code), 'action' => 'TINVENTORY_UPDATE', 'cond' => '$object->title === "' . $langs->trans('DolidacticielTitleInventoryForTest') . '" && count($object->TInventorydet) > 0', 'level' => 0, 'rights' => '$user->rights->inventory->write && $conf->stock->enabled', 'mainmenutips' => 'a#mainmenua_products', 'tips' => 'a.vsmenu[href*="/inventory/inventory.php?action=list"]', 'from_atm' => 1, 'module_name' => 'inventory'));
$d->save($PDOdb);