function editer_batterie() { global $page; global $test; global $message; //layout principal du site $page['gabarit'] = "administration"; //verification des droits d'acces if (isset($_SESSION['role_user']) && droit_acces($test['editer_test'], $_SESSION['role_user'])) { //recuperer la variable $id dans la barre url en get ou post if (isset($_GET['id'])) { $id = $_GET['id']; } if (isset($_POST['id_batterie'])) { $id = $_POST['id_batterie']; } //chargement de la batterie concernée $page['batterie'] = get_batterie($id); $page['batterie'] = $page['batterie'][0]; //recuperation du motif de la batterie $page['id_motif'] = get_motif_batterie($id); //*recuperation de la liste des motifs, et des tests pour la sidebar batterie $page['motif'] = liste_motif(); $page['etat'] = liste_etat(); $page['tests'] = liste_des_tests($page['batterie']['libelle_projet']); $page['projet'] = liste_projet(); $page['lieu'] = liste_lieux_auteur(); //organismes auteurs //--création des vues $page['vue'] = "batteries/edit_batterie.vue.php"; $page['colonne'] = "batteries/sidebar_edit_batterie.vue.php"; if (isset($_POST['edit_batterie'])) { if (is_current_version_test($_POST['id_batterie'], $_POST['revision'])) { update_revision_test($_POST['id_batterie']); // on supprime les anciens tests de la batterie avant de procéder à l'enregistrement de nouveaux delete_contenu_batterie($id); foreach ($_POST['tests'] as $key => $test) { // ajout de nouveaux tests dans la batterie (auto increment de l'ordre) add_batterie_test($id, $test, $key + 1); } //La batterie passe automatiquement en experimentation si elle a été éditée if ($page['batterie']['id_etat'] == 1) { set_batterie_to_experimentation($id); } //redirection sur la page d'accueil du controleur header("Location: index.php?controleur=batterie_test&tache=base"); } else { $page['message'] = $message['batterie_outdated']; } } else { $page['batterie'] = get_batterie($id); //on recupere la liste des batteries $page['batterie'] = $page['batterie'][0]; //on prend la premiere valeur du tableau recuperé //Affichage du message d'erreur si l'etat de la batterie ne permet pas la modification if (get_etat_batterie($id) >= 3) { $page['message'] = $message['batterie_edition_disabled']; } //recuperation du contenu de la batterie $page['batterie']['batterie_test'] = get_contenu_batterie($id); foreach ($page['batterie']['batterie_test'] as $key => $content) { $tests = get_test($content['id_test']); foreach ($tests[0] as $k => $val) { $page['batterie']['batterie_test'][$key][$k] = $val; } } } } else { $page['vue'] = "erreur_droit.vue.php"; } }
function editer_test() { global $page; global $item; global $message; $page['gabarit'] = "administration"; if (isset($_SESSION['role_user']) && droit_acces($item['editer_item'], $_SESSION['role_user'])) { if (isset($_GET['id'])) { $id = $_GET['id']; } if (isset($_POST['id_test'])) { $id = $_POST['id_test']; } $page['vue'] = "tests/edit_test.vue.php"; $page['test'] = get_test($id); $page['test'] = $page['test'][0]; $page['test']['id_test'] = $id; $page['sphere'] = liste_sphere(); $page['facteur'] = liste_facteur(); $page['test']['id_sphere'] = get_id_sphere($page['test']['id_categorie']); $page['items'] = liste_item_by_categorie($page['test']['id_categorie'], $page['test']['id_projet']); $page['colonne'] = "tests/sidebar_edit_test.vue.php"; $page['projet'] = liste_projet(); if (isset($_POST['edit_test'])) { if (is_current_version_test($_POST['id_test'], $_POST['revision'])) { update_revision_test($_POST['id_test']); if (get_etat_test($_POST['id_test']) <= 2 && !has_reponse_test($_POST['id_test'])) { //passer test en exerimentation delete_test_section($_POST['id_test']); if (isset($_POST['items'])) { foreach ($_POST['items'] as $key => $it) { $tabs = explode('|', $it); if (sizeof($tabs) == 1) { if (isset($_POST[$it . 'actif'])) { $actif = 'on'; } else { $actif = ''; } if (isset($_POST[$it . 'score'])) { $score = 'on'; } else { $score = ''; } if ($_POST[$it . 'chrono'] == "" || $_POST[$it . 'chrono'] <= 0) { $chrono = 0; } else { $chrono = $_POST[$it . 'chrono']; } add_test_section($_POST['id_test'], $it, $key + 1, 'item', $actif, $score, $chrono); set_item_to_experimentation($it); } else { if ($tabs[1] == 'illimitée') { $tabs[1] = null; } $id_section = creation_section($tabs[0], intval($tabs[1])); add_test_section($_POST['id_test'], $id_section, $key + 1, 'section'); foreach ($_POST[$tabs[2]] as $keys => $ite) { if (isset($_POST[$ite . 'actif'])) { $actif = 'on'; } else { $actif = ''; } if (isset($_POST[$ite . 'score'])) { $score = 'on'; } else { $score = ''; } if ($_POST[$ite . 'chrono'] == "" || $_POST[$ite . 'chrono'] <= 0) { $chrono = 0; } else { $chrono = $_POST[$ite . 'chrono']; } add_section_item($id_section, $ite, $keys + 1, $actif, $score, $chrono); set_item_to_experimentation($ite); } } } } set_test_to_experimentation($_POST['id_test']); // header("Location: index.php?controleur=test&tache=base"); header("Location: index.php?controleur=test&tache=editer_test&id=" . $_POST['id_test'] . "&mesg=ok"); } else { header("Location: index.php?controleur=test&tache=visualiser_test&id=" . $_POST['id_test']); } } else { $page['message'] = $message['outdated_test']; } } else { $page['test'] = get_test($_GET['id']); $page['test'] = $page['test'][0]; $page['test']['contenu_test'] = get_contenu_test($_GET['id']); $page['test']['id_sphere'] = get_id_sphere($page['test']['id_categorie']); $page['test']['id_test'] = $id; if (get_etat_test($page['test']['id_test']) > 2 || has_reponse_test($page['test']['id_test'])) { $page['message'] = $message['test_edition_disabled']; } foreach ($page['test']['contenu_test'] as $key => $content) { if ($content['type'] == 'item') { $items = get_item($content['id_element']); if (isset($items[0])) { foreach ($items[0] as $k => $v) { $page['test']['contenu_test'][$key][$k] = $v; } } $page['test']['contenu_test'][$key]['type'] = 'item'; } else { $section = get_section($content['id_element']); foreach ($section[0] as $k => $v) { $page['test']['contenu_test'][$key][$k] = $v; } $page['test']['contenu_test'][$key]['type'] = 'section'; } $page['test']['contenu_test'][$key]['item'] = get_item_by_section($content['id_element']); } } } else { $page['vue'] = "erreur_droit.vue.php"; } }