/** * eval_ccpc_getFilterDetails - Retourne les informations relatives à un filtre à partir de son identifiant * * @category : eval_ccpc_functions * @param int $id Identifiant du filtre * @return array Array contenant les informations relatives au filtre * * @Author Ali Bellamine * * Contenu de l'array retourné :<br> * ['id'] => (int) Identifiant du filtre<br> * ['nom'] => (string) Nom du filtre<br> * ['query'] => (string) Requête relative au filtre<br> * ['promotion'] => (int) 1 si le filtre prend en compte la promotion de l'utilisateur, 0 si il ne le prend pas en compte<br> * ['mail']['titre'] => (string) Objet des mails automatiques envoyés à partir du filtre<br> * ['mail']['objet'] => (string) Contenu des mails automatiques envoyés à partir du filtre<br> * ['icone'] (optionnel) => (string) Chemin vers l'icone du filtre * ['detected'][timestamp de la borne supérieure de l'intervalle temporel de la période détectée][timestamp de la borne inférieure de l'intervalle temporel de la période détectée][id du service][] (optionnel) => (array) informations relatives au service détecté * */ function eval_ccpc_getFilterDetails($id) { if (count(eval_ccpc_checkFiltre($id, array())) == 0) { global $db; $filtre = array(); /** Informations relative aux réglages du filtre **/ $sql = 'SELECT id filtreId,nom filtreNom, query filtreQuery, promotion promotion, mail_titre filtreMailTitre, mail_objet filtreMailObjet, icone icone FROM eval_ccpc_filtres WHERE id = ? LIMIT 1'; $res = $db->prepare($sql); $res->execute(array($id)); if ($res_f = $res->fetch()) { $filtre['id'] = $res_f['filtreId']; $filtre['nom'] = $res_f['filtreNom']; $filtre['query'] = $res_f['filtreQuery']; $filtre['promotion'] = $res_f['promotion']; $filtre['mail']['titre'] = $res_f['filtreMailTitre']; $filtre['mail']['objet'] = $res_f['filtreMailObjet']; if (isset($res_f['icone'])) { $filtre['icone'] = $res_f['icone']; } else { $filtre['icone'] = ''; } } /** Liste des stages détectés par le filtre **/ $sql = 'SELECT id, id_service serviceId, debutStage dateDebut, finStage dateFin, promotion promotion FROM eval_ccpc_filtres_detected WHERE id_filtre = ?'; $res = $db->prepare($sql); $res->execute(array($filtre['id'])); // De la forme : $filtre['detected'][timestamp supérieur de l'intervale][timestamp inférieur de l'intervale][id du service] while ($res_f = $res->fetch()) { $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['id'] = $res_f['id']; $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['filtre']['id'] = $filtre['id']; $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['service']['id'] = $res_f['serviceId']; $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['date']['debut'] = DatetimeToTimestamp($res_f['dateDebut']); $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['date']['fin'] = DatetimeToTimestamp($res_f['dateFin']); $filtre['detected'][DatetimeToTimestamp($res_f['dateFin'])][DatetimeToTimestamp($res_f['dateDebut'])][$res_f['serviceId']]['promotion'] = $res_f['promotion']; } // On trie les services par ordre décroissant if (isset($filtre['detected'])) { krsort($filtre['detected']); foreach ($filtre['detected'] as $key => $value) { krsort($filtre['detected'][$key]); } } return $filtre; } else { return FALSE; } }
// On récupère les donnée propre au filtre sélectionnée if (isset($_GET['filtreId']) && count(eval_ccpc_checkFiltre($_GET['filtreId'], array())) == 0) { $filtreData = eval_ccpc_getFilterDetails($_GET['filtreId']); } /** 2. Traitement des données de formulaire **/ $error = array(); // Suppression d'un filtre if ($action == 'delete') { // URL où rediriger à la fin $tempGET = $_GET; unset($tempGET['filtreId']); unset($tempGET['action']); $redirectURL = ROOT . CURRENT_FILE . '?' . http_build_query($tempGET); if (isset($_GET['filtreId']) && count(eval_ccpc_checkFiltre($_GET['filtreId'])) == 0) { $sql = 'DELETE FROM eval_ccpc_filtres WHERE id = ?'; $res = $db->prepare($sql); $res->execute(array($_GET['filtreId'])); header('Location: ' . $redirectURL); } else { header('Location: ' . $redirectURL); } } // Ajout et edition des filtres if (isset($_POST) && count($_POST) > 0) { $postData = array(); if ($action == 'add' || $action == 'edit') { // On récupère l'image uploadée if (isset($_FILES['icone']) && $_FILES['icone']['error'] == UPLOAD_ERR_OK) { $imgName = uniqid() . '_' . $_FILES['icone']['name'];