Example #1
0
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";
    }
}
Example #2
0
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&eacute;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";
    }
}