/** * getEvalData - Retourne les informations relative à une campagne d'évaluation * * @category : evaluationFunction * @param int $id Identifiant de la campagne d'évaluation * @return array Array contenant les données relative à la campagne d'évaluation * * @Author Ali Bellamine * * Contenu de l'array retourné :<br> * ['id'] => (int) identifiant de la campagne d'évaluation<br> * ['nom'] => (string) nom de la campagne d'évaluation<br> * ['date'][debut'] => (string) Date de début de la campagne d'évaluation sous forme de Timestamp<br> * ['date'][fin'] => (string) Date de fin de la campagne d'évaluation sous forme de Timestamp<br> * ['type'][id'] => (int) Identifiant du module de la campagne d'évaluation<br> * ['type'][nom'] => (string) Nom du module de la campagne d'évaluation<br> * ['type'][dossier'] => (string) Dossier d'installation du module de la campagne d'évaluation<br> * ['type'][data'] => (array) Contient les données relatives au type de module d'évaluation, voir {@link getEvalTypeData()}<br> * ['type'][statut'] => (int) Si 0, le module d'évaluation est actuellement inactif, si 1 il est actuellement actif<br> * ['users'][id de l'utilisateur] => (array) Contient les informations relatives à l'utilisateur : nom, prenom, promotion, nbEtudiant, voir {@link: getUserData()}<br> * ['orderedUsers'][] => (array) Même informations que ci dessus, mais celles-ci sont classé par ordre de résultats de la requête SQL et non plus par id (évaluations non remplis en premier)<br> * ['orderedUsers']['nb'] => (int) Nombre total d'utilisateurs<br> * ['nb']['remplis'] => (int) nombre d'évaluations remplis<br> * ['nb']['total'] => (int) nombre total d'utilisateurs */ function getEvalData($id) { /* Initialisation des variables */ global $db; // Permet l'accès à la BDD $erreur = array(); $evaluation = array(); /* On vérifie l'existance de l'évaluation */ $erreur = checkEvaluation($id, $erreur); if (count($erreur) == 0) { /* Récupération des informations sur l'évaluation */ $sql = 'SELECT e.id evaluationId, e.nom evaluationNom, e.dateDebut evaluationDateDebut, e.dateFin evaluationDateFin, t.id evaluationTypeId, t.nom evaluationTypeNom, t.nomDossier evaluationTypeDossier, t.actif evaluationTypeStatut FROM evaluation e INNER JOIN typeevaluation t ON t.id = e.type WHERE e.id = ? LIMIT 1'; $res = $db->prepare($sql); $res->execute(array($id)); while ($res_f = $res->fetch()) { $evaluation['id'] = $res_f['evaluationId']; $evaluation['nom'] = $res_f['evaluationNom']; $evaluation['date']['debut'] = DatetimeToTimestamp($res_f['evaluationDateDebut']); $evaluation['date']['fin'] = DatetimeToTimestamp($res_f['evaluationDateFin']); $evaluation['type']['id'] = $res_f['evaluationTypeId']; $evaluation['type']['nom'] = $res_f['evaluationTypeNom']; $evaluation['type']['dossier'] = $res_f['evaluationTypeDossier']; $evaluation['type']['data'] = getEvalTypeData($res_f['evaluationTypeId']); $evaluation['type']['statut'] = $res_f['evaluationTypeStatut']; } /* Récupèration de la liste des personne assignés à l'évaluation */ $sql = 'SELECT er.id idRegister, er.evaluationStatut statut, er.date date, er.userId userId, u.nom userNom, u.prenom userPrenom, u.mail userMail, p.id promotionId, p.nom promotionNom, u.nbEtudiant nbEtudiant FROM evaluationregister er INNER JOIN user u ON er.userId = u.id LEFT JOIN promotion p ON p.id = u.promotion WHERE er.evaluationId = ? ORDER BY er.evaluationStatut ASC, u.nom ASC, u.prenom ASC'; $res = $db->prepare($sql); if ($res->execute(array($evaluation['id']))) { $nbEval = 0; $evaluation['orderedUsers'] = array(); while ($res_f = $res->fetch()) { if ($res_f['statut'] == 1) { $nbEval++; } $evaluation['users'][$res_f['userId']]['id'] = $res_f['userId']; $evaluation['users'][$res_f['userId']]['registerId'] = $res_f['idRegister']; $evaluation['users'][$res_f['userId']]['statut'] = $res_f['statut']; $evaluation['users'][$res_f['userId']]['mail'] = array(); if (isSerialized($res_f['userMail']) && ($tempMail = unserialize($res_f['userMail']))) { $firstLoop = TRUE; foreach ($tempMail as $email) { $evaluation['users'][$res_f['userId']]['mail'][] = $email; } } $evaluation['users'][$res_f['userId']]['nom'] = $res_f['userNom']; $evaluation['users'][$res_f['userId']]['prenom'] = $res_f['userPrenom']; if (isset($res_f['promotionNom'])) { $evaluation['users'][$res_f['userId']]['promotion']['id'] = $res_f['promotionId']; $evaluation['users'][$res_f['userId']]['promotion']['nom'] = $res_f['promotionNom']; } $evaluation['users'][$res_f['userId']]['nbEtudiant'] = $res_f['nbEtudiant']; $evaluation['orderedUsers'][] = $evaluation['users'][$res_f['userId']]; // Même liste mais ordonée } if (isset($evaluation['users'])) { $evaluation['nb']['total'] = count($evaluation['users']); } else { $evaluation['nb']['total'] = 0; } $evaluation['nb']['remplis'] = $nbEval; $evaluation['orderedUsers']['nb'] = $evaluation['nb']; } return $evaluation; } else { return false; } }
<input type = "submit" class = "inlineSubmit" value = "<?php echo LANG_INTERFACE_SELECTBUTTON; ?> " /> </label> </form> </div> <?php } /** 3. Vérification et chargement du module **/ if (isset($_GET['evaluationType'])) { if (isset($evaluationTypeList[$_GET['evaluationType']]) && $evaluationTypeList[$_GET['evaluationType']]['actif'] == 1 && isset($evaluationTypeList[$_GET['evaluationType']]['resultRight'][$_SESSION['rang']]) && $evaluationTypeList[$_GET['evaluationType']]['resultRight'][$_SESSION['rang']] == 1) { // On enregistre les informations sur le type d'évaluation sélectionné dans $evaluationTypeData $evaluationTypeData = getEvalTypeData($evaluationTypeList[$_GET['evaluationType']]['id']); // On déclare la constante PLUGIN_PATH contenant le chemin du plugin define('PLUGIN_PATH', $_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $evaluationTypeData['dossier'] . '/'); // On charge le fichier de config si il est présent if (is_file(PLUGIN_PATH . 'settings.php')) { include PLUGIN_PATH . 'settings.php'; } // On refuse de charger le plugin si on est connecté en tant qu'un autre utilisateur et que cela n'a pas été autorisé if (isset($_SESSION['loginAS']) && (!defined('ALLOW_LOGIN_AS') || constant('ALLOW_LOGIN_AS') == FALSE)) { header('Location: ' . getPageUrl('evalView', array('erreur' => serialize(array(33 => TRUE))))); // On arrête l'execution du script exit; } // On charge le module include PLUGIN_PATH . 'displayEvaluationResult.php'; }
} ?> </title> <!-- CSS --> <!-- Chargement du CSS spécifique au plugin si un plugin est chargé --> <?php if (CURRENT_FILE == 'content/evaluation/viewResult.php' || CURRENT_FILE == 'content/evaluation/view.php') { if (CURRENT_FILE == 'content/evaluation/viewResult.php' && isset($_GET['evaluationType'])) { // On récupère l'info sur le module si il est chargé $evaluationType = getEvalTypeData($_GET['evaluationType']); } else { if (CURRENT_FILE == 'content/evaluation/view.php' && isset($_GET['id'])) { // On récupère l'info sur le module si il est chargé $evaluationType = getEvalTypeData($_GET['id']); } } if (isset($evaluationType['dossier']) && is_file($_SERVER['DOCUMENT_ROOT'] . '/' . LOCAL_PATH . 'evaluations/' . $evaluationType['dossier'] . '/css/main.css')) { ?> <link rel="stylesheet" href="<?php echo ROOT . 'evaluations/' . $evaluationType['dossier'] . '/css/main.css'; ?> "> <!-- CSS spécifique du plugin --> <?php } } ?> <link rel="stylesheet" href="<?php echo ROOT . 'theme/font-awesome-4.3.0/css/font-awesome.min.css'; ?>
<?php echo CHARTE; ?> </div> <form method = "POST"> <input type = "hidden" name = "chartValidation" /> <input type = "submit" value = "<?php echo LANG_ADMIN_CHART_VALID; ?> " style = "color: white; background-color: #117D11; border-radius: 5px;" /> </form> </div> <?php } else { // Récupération des informations concernant le script $evaluationTypeData = getEvalTypeData($evaluationData['type']['id']); // On déclare la constante PLUGIN_PATH contenant le chemin du plugin define('PLUGIN_PATH', $_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $evaluationTypeData['dossier'] . '/'); // On charge la page ?> <div class = "formEvaluation"> <?php // On charge le fichier de config si il est présent if (is_file(PLUGIN_PATH . 'settings.php')) { include PLUGIN_PATH . 'settings.php'; } // On refuse de charger le plugin si on est connecté en tant qu'un autre utilisateur et que cela n'a pas été autorisé if (isset($_SESSION['loginAS']) && (!defined('ALLOW_LOGIN_AS') || constant('ALLOW_LOGIN_AS') == FALSE)) { header('Location: ' . getPageUrl('eval', array('erreur' => serialize(array(33 => TRUE))))); // On arrête l'execution du script exit;