/** * updateEvaluationsTypes - Vérifie la validité des modules d'évaluation installés et met à jours leurs données d'installation * * @category : evaluationFunction * * @Author Ali Bellamine */ function updateEvaluationsTypes() { /* Préparation des variables */ global $db; // Base de donnée $listEvaluationsType = array(); // Array contenant la liste des évaluations // On charge la liste des plugins contenues dans le dossier evaluations if ($pluginsEvaluations = scandir($_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations')) { foreach ($pluginsEvaluations as $file) { if (is_dir($_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $file) && $file != '..' && $file != '.') { /** Pour chaque évaluation, on l'enregistre dans la variable $listEvaluationsType et on enregistre ses informations **/ $listEvaluationsType[$file]['dossier'] = $file; // dossier de l'évaluation /* Récupèration du nom de l'évaluation dans le fichier XML */ if (is_file($_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $file . '/MANIFEST.xml')) { if ($manifest = simplexml_load_file($_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $file . '/MANIFEST.xml')) { $listEvaluationsType[$file]['nom'] = $manifest->nom->__toString(); } } else { $listEvaluationsType[$file]['nom'] = false; } /* On vérifie que le type d'évaluation contient les fichiers nécessaire à son fonctionnement, si les 2 conditions suivantes sont validées on met la variable "valid" sur 1 : - Présence des fichiers : displayEvaluation.php, displayEvaluationResult.php - Présence de la variable $listEvaluationsType[$file]['nom'] */ if (is_file($_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $file . '/displayEvaluation.php') && is_file($_SERVER['DOCUMENT_ROOT'] . LOCAL_PATH . '/evaluations/' . $file . '/displayEvaluationResult.php') && (isset($listEvaluationsType[$file]['nom']) && $listEvaluationsType[$file]['nom'] != false)) { $listEvaluationsType[$file]['valid'] = 1; } else { $listEvaluationsType[$file]['valid'] = 0; } } } } /* On charge la liste des évaluations déjà enregistrées */ $bddEvaluationTypeList = getEvaluationTypeList(); foreach ($bddEvaluationTypeList as $bddEvaluationType) { /* Pour chaque plugin : - Soit elle existe dans le dossiers evaluations : * Elle est identique en tout point: on la supprime de l'array $listEvaluationsType * Elle présente une différence : on met à jour les données de la BDD puis on la supprime de l'array $listEvaluationsType - Soit elle n'existe pas : on met la variable valid sur 0 */ if (isset($bddEvaluationType['dossier']) && isset($listEvaluationsType[$bddEvaluationType['dossier']])) { if ($listEvaluationsType[$bddEvaluationType['dossier']]['valid'] == $bddEvaluationType['actif'] && $listEvaluationsType[$bddEvaluationType['dossier']]['nom'] == $bddEvaluationType['nom'] && $listEvaluationsType[$bddEvaluationType['dossier']]['dossier'] == $bddEvaluationType['dossier']) { // On supprime le type de l'array $listEvaluationsType unset($listEvaluationsType[$bddEvaluationType['dossier']]); } else { // On met à jour le type d'évaluation dans la BDD if ($listEvaluationsType[$bddEvaluationType['dossier']]['nom']) { $sql = 'UPDATE typeevaluation SET nom = "' . $listEvaluationsType[$bddEvaluationType['dossier']]['nom'] . '", actif = "' . $listEvaluationsType[$bddEvaluationType['dossier']]['valid'] . '" WHERE nomDossier = "' . $listEvaluationsType[$bddEvaluationType['dossier']]['dossier'] . '" LIMIT 1'; } else { $sql = 'UPDATE typeevaluation SET actif = "' . $listEvaluationsType[$bddEvaluationType['dossier']]['valid'] . '" WHERE nomDossier = "' . $listEvaluationsType[$bddEvaluationType['dossier']]['dossier'] . '" LIMIT 1'; } // On stock la requête dans l'array $listEvaluationsType $listEvaluationsType[$bddEvaluationType['dossier']]['sql'] = $sql; } } else { $listEvaluationsType[$bddEvaluationType['dossier']]['dossier'] = $res_f['dossier']; $listEvaluationsType[$bddEvaluationType['dossier']]['valid'] = 0; $listEvaluationsType[$bddEvaluationType['dossier']]['sql'] = 'UPDATE typeevaluation SET actif = 0 WHERE nomDossier = "' . $bddEvaluationType['dossier'] . '" LIMIT 1'; } } // On parcours l'array, si des requêtes sont en attente, on les execute, sinon on réalise des insert if (isset($listEvaluationsType) && count($listEvaluationsType) > 0) { foreach ($listEvaluationsType as $evaluationType) { if (isset($evaluationType['sql'])) { $res = $db->query($evaluationType['sql']); unset($listEvaluationsType[$evaluationType['dossier']]); } else { if ($evaluationType['valid'] == 1) { $sql = 'INSERT INTO typeevaluation (nom, nomDossier, actif) VALUES ( "' . $evaluationType['nom'] . '", "' . $evaluationType['dossier'] . '", "' . $evaluationType['valid'] . '" )'; echo $sql; $db->query($sql); unset($listEvaluationsType[$evaluationType['dossier']]); } } } } }
Affiche la liste des modules d'évaluations intallés et permet d'en régler la confidentialité */ /** Routage selon la variable action **/ $allowedAction = array('list', 'set'); if (isset($_GET['action']) && in_array($_GET['action'], $allowedAction)) { $action = $_GET['action']; } else { $action = 'list'; } /** 1. Récupération des données **/ $pageUtilisateurs = getPageUrl('adminUtilisateurs'); $listeModules = getEvaluationTypeList(); if ($action == 'set') { if (isset($listeModules[$_GET['id']])) { $moduleData = $listeModules[$_GET['id']]; } else { header('Location: ' . ROOT . CURRENT_FILE . '?page=' . $_GET['page']); } } /** 2. Traitement du formulaire **/ if (isset($_POST) && count($_POST) && $action == 'set') { $allowedValue = array(0, 1); $update = array(); for ($n = 1; $n <= 4; $n++) { if (isset($_POST['result_access_' . $n]) && in_array($_POST['result_access_' . $n], $allowedValue) && $_SESSION['rang'] >= $n) {
GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. **/ /* 26/02/15 - viewResult.php - Ali Bellamine Page chargé d'afficher les résultats des formulaires d'évaluation */ require '../../core/main.php'; require '../../core/header.php'; /* Récupération de la liste des type d'évaluation installés */ $evaluationTypeList = getEvaluationTypeList(); if (count($evaluationTypeList) != 0 && !isset($_GET['evaluationType'])) { ?> <div id = "selecteurEvaluation"> <form method = "GET" action = "<?php echo ROOT . 'content/evaluation/viewResult.php'; ?> "> <label for ="evaluationType" style = "float: inherit; margin: auto;"><?php echo LANG_INTERFACE_SELECTEVALUATIONTYPE; ?> <select name = "evaluationType" id = "evaluationType"> <?php foreach ($evaluationTypeList as $evaluationType) { if ($evaluationType['actif'] == 1 && isset($evaluationType['resultRight'][$_SESSION['rang']]) && $evaluationType['resultRight'][$_SESSION['rang']] == 1) { ?>
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. **/ /* 16/02/15 - index.php - Ali Bellamine Page d'accueil des évaluations - Affiche la liste des évaluations */ require '../../core/main.php'; require '../../core/header.php'; /* 1. Récupération des données */ // On récupère la liste des évaluations $evals = getEvalList($_SESSION['id']); $evalTypes = getEvaluationTypeList(); // On récupère le filtre $defaultFilter = 'now'; $allowedFilter = array('next', 'now', 'old'); if (isset($_GET['selectTypeEvaluation']) && in_array($_GET['selectTypeEvaluation'], $allowedFilter)) { $filter = $_GET['selectTypeEvaluation']; } else { $filter = $defaultFilter; } /* 2. Affichage des données */ ?> <h1><?php echo LANG_EVAL_LIST; ?>