$params['id_cluster'], 'class' => $params['class'] ]); $checktypeResponse = $checktypeRequest->dispatch(); /* (3) Si on ne le trouve pas, on retourne une erreur */ if( $checktypeResponse->error->get() != Err::Success ) return Viewer::$htmlError; /* (4) On récupère les données du groupe */ $currentCluster = $checktypeResponse->get('cluster'); /* [2] Init Twig =========================================================*/ $loader = new \Twig_Loader_Filesystem(__BUILD__.'/viewer/view'); $twig = new \Twig_Environment($loader, []); /* [3] Store variables =========================================================*/ $variables = [ 'p_id_cluster' => $params['id_cluster'], 'p_class' => $params['class'], 'p_name' => $currentCluster['name'], 'p_theme' => $_SESSION['WAREHOUSE']['theme'] ]; /* [4] Store functions =========================================================*/ $twig->addFunction(new \Twig_Function('f_members', function($id_cluster, $class){ /* [1] On récupère les membres =========================================================*/ /* (1) On exécute la requête */ $getmembersRequest = new Request('clusterDefault/getMembers', [ 'id_cluster' => $id_cluster, 'class' => $class ]); $getmembersResponse = $getmembersRequest->dispatch(); /* (2) Si erreur, on retourne rien par défaut */ if( $getmembersResponse->error->get() != Err::Success ) return []; /* (3) On récupère la liste des UID uniquement */ $members_ids = []; foreach($getmembersResponse->get('members') as $member) $members_ids[] = ($class==0) ? $member['id_user'] : $member['id_machine']; /* [2] On récupère les utilisateurs non membres =========================================================*/ /* (1) On récupère les utilisateurs */ if( $class == 0 ){ /* (2) On exécute la requête */ $getusersRequest = new Request('userDefault/getAll'); // On recupere la reponse $getusersResponse = $getusersRequest->dispatch(); /* (3) si erreur, on affiche l'explicitation */ if( $getusersResponse->error->get() != Err::Success ) return []; /* (4) On récupère la liste des utilisateurs */ $users = $getusersResponse->get('users'); /* (5) On ajoute s'ils sont dans le groupe ou non */ foreach($users as $u=>$user) $users[$u]['already'] = in_array($user['id_user'], $members_ids); return $users; /* [3] On récupère les machines non membres =========================================================*/ /* (1) On récupère les machines */ }else{ /* (2) On exécute la requête */ $getmachinesRequest = new Request('machineDefault/getAll'); // On recupere la reponse $getmachinesResponse = $getmachinesRequest->dispatch(); /* (3) si erreur, on affiche l'explicitation */ if( $getmachinesResponse->error->get() != Err::Success ) return []; /* (4) On récupère la liste des machines */ $machines = $getmachinesResponse->get('machines'); /* (5) On ajoute s'ils sont dans le groupe ou non */ foreach($machines as $u=>$machine) $machines[$u]['already'] = in_array($machine['id_machine'], $members_ids); return $machines; } })); /* [5] Build the whole stuff =========================================================*/ return $twig->render('group/members_choice.twig', [ 'p_class' => $variables['p_class'], 'p_name' => $variables['p_name'], 'p_id_cluster' => $variables['p_id_cluster'], 'p_theme' => $variables['p_theme'] ]); } } ?>