Example #1
0
function retirer_partage_item()
{
    global $page;
    global $item;
    global $message;
    $page['gabarit'] = "administration";
    if (isset($_SESSION['role_user']) && droit_acces($item['reponse_item'], $_SESSION['role_user'])) {
        $page['vue'] = "items/retirer_partage_item.vue.php";
        $page['colonne'] = "items/sidebar_item.vue.php";
        $page['etat'] = liste_etat();
        $page['etat'] = liste_etat();
        $page['categorie'] = liste_categorie();
        $page['items'] = liste_item();
        $page['lieu'] = liste_lieux_auteur();
        $page['sphere'] = liste_sphere();
        $page['facteur'] = liste_facteur();
        $page['projet'] = liste_projet();
        $page['organisme_auteur'] = liste_lieux_auteur();
        if (isset($_POST['rech_item'])) {
            $page['items_recherche'] = json_encode(rechercher_item_partage2_json(1, 0, $_POST['libelle_item'], $_POST['projet_item'], $_POST['difficulte_item'], $_POST['id_etat'], $_POST['duree_item'], $_POST['id_facteur'], $_POST['id_sphere'], $_POST['crea1'], $_POST['crea2'], $_POST['modif1'], $_POST['modif2'], $_POST['id_lieu']));
        } elseif (isset($_POST['retirer'])) {
            if (isset($_POST['droits'])) {
                foreach ($_POST['droits'] as $droit) {
                    retirer_droit($droit);
                }
            } else {
                $page['message'] = $message['item_obligatoire'];
            }
            if (!isset($page['message'])) {
                header("Location : index.php?controleur=item&tache=base");
            }
        }
    } else {
        $page['vue'] = "erreur_droit.vue.php";
    }
}
Example #2
0
function creer_resultat()
{
    global $page;
    global $resultat;
    $page['gabarit'] = "administration";
    if (isset($_SESSION['role_user']) && droit_acces($resultat['creer_resultat'], $_SESSION['role_user'])) {
        $page['vue'] = "resultats/resultat.vue.php";
        $page['colonne'] = "resultats/sidebar_resultat.vue.php";
        $page['items'] = liste_item();
        $page['nid'] = get_nid($_GET['id']);
        $page['nid'] = $page['nid'][0]['nid_candidat'];
        $page['tests'] = liste_tests();
        if (isset($_POST['test'])) {
            $page['test'] = get_test($_POST['test']);
            $page['test'] = $page['test'][0];
            $page['test']['contenu_test'] = get_contenu_test_actif($_POST['test']);
            $i = 0;
            foreach ($page['test']['contenu_test'] as $key => $content) {
                if ($content['type'] == 'item') {
                    $item = get_item($content['id_element']);
                    $page['test']['contenu_test'][$i] = $item[0];
                    $page['test']['contenu_test'][$i]['reponse'] = get_reponse_item($content['id_element']);
                    $i++;
                } else {
                    //$section=get_section($content['id_element']);
                    //$page['test']['contenu_test'][$key]=$section[0];
                    //$page['test']['contenu_test'][$i]['type']='section';
                    $items = get_item_by_section($content['id_element']);
                    foreach ($items as $it) {
                        $page['test']['contenu_test'][$i] = $it;
                        $page['test']['contenu_test'][$i]['reponse'] = get_reponse_item($it['id_item']);
                        $i++;
                    }
                }
            }
            if (isset($_POST['result'])) {
                $current_revision = 0;
                $size = sizeof($_POST["id_item_revision"]);
                foreach ($_POST["id_item_revision"] as $item_rev) {
                    $tab = explode('|', $item_rev);
                    $item = $tab[0];
                    $revision = $tab[1];
                    if (is_current_version_item($item, $revision)) {
                        $current_revision++;
                    }
                }
                if ($current_revision == $size) {
                    foreach ($_POST["id_item_revision"] as $item_rev) {
                        $tab = explode('|', $item_rev);
                        $item = $tab[0];
                        $revision = $tab[1];
                        if (isset($_POST[$item])) {
                            //recuperer dimension 0 reponse
                            $post = $_POST[$item];
                            $zero_rep = get_0reponse_item($item);
                            $reponse = get_reponse_item($item);
                            if (strpos($reponse[0]['nom_reponse'], 'textarea') !== false) {
                                //enregister textarea sans score
                                enregistrement_reponse($post[$reponse[0]['nom_reponse']], $item, $_POST['test'], $_POST['nid'], $reponse[0]['nom_reponse']);
                            } elseif (isset($post[$reponse[0]['nom_reponse']])) {
                                //voir si combinaison
                                $combi = get_nb_combinaison($item);
                                $nom_reps = get_nom_rep($item);
                                foreach ($nom_reps as $nr) {
                                    if (is_array($post[$nr['nom_reponse']])) {
                                        foreach ($post[$nr['nom_reponse']] as $rc) {
                                            $pos = get_position_rep($rc, $item, $nr['nom_reponse']);
                                            enregistrement_reponse($rc, $item, $_POST['test'], $_POST['nid'], $nr['nom_reponse'], $pos);
                                        }
                                    } else {
                                        $pos = get_position_rep($post[$nr['nom_reponse']], $item, $nr['nom_reponse']);
                                        enregistrement_reponse($post[$nr['nom_reponse']], $item, $_POST['test'], $_POST['nid'], $nr['nom_reponse'], $pos);
                                    }
                                }
                                if (strpos($reponse[0]['nom_reponse'], 'trou') !== false) {
                                    //recupere si sequence
                                    $nb_sequence = get_nb_sequence($item);
                                    if ($nb_sequence != 0) {
                                        //j'ai 1 ou +ieurs sequences
                                        //si 1 sequence:
                                        if ($nb_sequence == 1) {
                                            $id_reponses = get_id_reponse_from_combi($item);
                                            $combi = get_combi($item);
                                            $combi = $combi[0]['id_combinaison'];
                                            $nom_reps = get_nom_rep($item);
                                            $rep_item = array();
                                            $rep_candidat = array();
                                            foreach ($id_reponses as $rep) {
                                                $rep_item[] = $rep['id_reponse'];
                                            }
                                            //recuperer id_reponse avec nom valeur id_item
                                            foreach ($nom_reps as $n) {
                                                if (isset($_POST[$n])) {
                                                    foreach ($_POST[$n] as $r) {
                                                        $rep_cand = get_reponse_item_val($item, $n, $r);
                                                        $rep_candidat[] = $rep_cand[0]['id_reponse'];
                                                    }
                                                }
                                            }
                                            //check nb difference entre 2 tableaux
                                            $dif = array_diff($rep_item, $rep_candidat);
                                            //recuperer dimension combinaison
                                            $dim = get_dim_from_combi($combi);
                                            //si 0 => bonne reponse
                                            if (sizeof($dif) == 0) {
                                                foreach ($dim as $d) {
                                                    enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_rep']);
                                                }
                                            } else {
                                                foreach ($dim as $d) {
                                                    enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_non_rep']);
                                                }
                                            }
                                        } else {
                                            //si + sequences
                                            $nom_reps = get_nom_rep($item);
                                            $rep_candidat = array();
                                            //recuperer id_reponse avec nom valeur id_item
                                            foreach ($nom_reps as $n) {
                                                if (isset($_POST[$n])) {
                                                    foreach ($_POST[$n] as $r) {
                                                        $rep_cand = get_reponse_item_val($item, $n, $r);
                                                        $rep_candidat[] = $rep_cand[0]['id_reponse'];
                                                    }
                                                }
                                            }
                                            $combi = get_combi($item);
                                            $sequence = array();
                                            foreach ($combi as $c) {
                                                $reps = get_id_rep_from_sequence($c['id_combinaison']);
                                                foreach ($r as $r) {
                                                    $array_rep[] = $r['id_reponse'];
                                                }
                                                $sequence[] = $array_rep;
                                            }
                                            $sequenceok = false;
                                            foreach ($sequence as $s) {
                                                $dif = array_diff($s, $rep_candidat);
                                                if (sizeof($dif) == 0) {
                                                    $sequenceok = true;
                                                }
                                            }
                                            $dim = get_dim_from_combi($combi[0]['id_combinaison']);
                                            if ($sequenceok == true) {
                                                foreach ($dim as $d) {
                                                    enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_rep']);
                                                }
                                            } else {
                                                foreach ($dim as $d) {
                                                    enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_non_rep']);
                                                }
                                            }
                                        }
                                    } else {
                                        //point par reponse
                                        $nom_reps = get_nom_rep($item);
                                        $rep_item = array();
                                        $rep_candidat = array();
                                        $id_reponses = get_id_reponse_from_combi($item);
                                        foreach ($id_reponses as $rep) {
                                            $rep_item[] = $rep['id_reponse'];
                                        }
                                        //recuperer id_reponse avec nom valeur id_item
                                        foreach ($nom_reps as $n) {
                                            if (isset($post[$n['nom_reponse']])) {
                                                if (is_array($post[$n['nom_reponse']])) {
                                                    foreach ($post[$n['nom_reponse']] as $r) {
                                                        $rep_cand = get_reponse_item_val($item, $n['nom_reponse'], $r);
                                                        $rep_candidat[] = $rep_cand[0]['id_reponse'];
                                                    }
                                                } else {
                                                    $rep_cand = get_reponse_item_val($item, $n['nom_reponse'], $post[$n['nom_reponse']]);
                                                    $rep_candidat[] = $rep_cand[0]['id_reponse'];
                                                }
                                            }
                                        }
                                        foreach ($rep_item as $ri) {
                                            //recuperer dim avec id_reponse
                                            $dim = get_dim_from_reponse($item, $ri);
                                            if (in_array($ri, $rep_candidat)) {
                                                foreach ($dim as $d) {
                                                    enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_rep']);
                                                }
                                                //bonne reponse
                                            } else {
                                                //mauvaise_reponse
                                                foreach ($dim as $d) {
                                                    enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_non_rep']);
                                                }
                                            }
                                        }
                                    }
                                } else {
                                    //teste si combinaison reponse ou reponse simple
                                    $nb_combi = get_nb_combinaison($item);
                                    if ($nb_combi == 1) {
                                        //checkbox 1 combi
                                        $id_reponses = get_id_reponse_from_combi($item);
                                        $combi = get_combi($item);
                                        $combi = $combi[0]['id_combinaison'];
                                        $nom_reps = get_nom_rep($item);
                                        $rep_item = array();
                                        $rep_candidat = array();
                                        foreach ($id_reponses as $rep) {
                                            $rep_item[] = $rep['id_reponse'];
                                        }
                                        //recuperer id_reponse avec nom valeur id_item
                                        foreach ($nom_reps as $n) {
                                            if (isset($_POST[$n['nom_reponse']])) {
                                                foreach ($_POST[$n] as $r) {
                                                    $rep_cand = get_reponse_item_val($item, $n, $r);
                                                    $rep_candidat[] = $rep_cand[0]['id_reponse'];
                                                }
                                            }
                                        }
                                        //check nb difference entre 2 tableaux
                                        $dif = array_diff($rep_item, $rep_candidat);
                                        //recuperer dimension combinaison
                                        $dim = get_dim_from_combi($combi);
                                        //si 0 => bonne reponse
                                        if (sizeof($dif) == 0) {
                                            foreach ($dim as $d) {
                                                enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_rep']);
                                            }
                                        } elseif (sizeof($dif) == 1) {
                                            foreach ($dim as $d) {
                                                enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_demi_rep']);
                                            }
                                        } else {
                                            foreach ($dim as $d) {
                                                enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_non_rep']);
                                            }
                                        }
                                    } else {
                                        //recuperer nb_reponse donnee
                                        $nb_rep_donne = sizeof($post[$reponse[0]['nom_reponse']]);
                                        $nb_rep_attendu = get_nb_rep_attendu($item);
                                        //si nb rep > repattendu
                                        if ($nb_rep_donne > $nb_rep_attendu) {
                                            foreach ($zero_rep as $zero) {
                                                enregistrement_score($zero['id_dimension'], $item, $_POST['test'], $_POST['nid'], $zero['score_zero_rep']);
                                            }
                                            //=> mauvaise reponse
                                        } else {
                                            //sinon
                                            //point par reponse
                                            $nom_reps = get_nom_rep($item);
                                            $rep_item = array();
                                            $rep_candidat = array();
                                            $id_reponses = get_id_reponse_from_combi($item);
                                            foreach ($id_reponses as $rep) {
                                                $rep_item[] = $rep['id_reponse'];
                                            }
                                            //recuperer id_reponse avec nom valeur id_item
                                            foreach ($nom_reps as $n) {
                                                if (isset($post[$n['nom_reponse']])) {
                                                    if (is_array($post[$n['nom_reponse']])) {
                                                        foreach ($post[$n['nom_reponse']] as $r) {
                                                            $rep_cand = get_reponse_item_val($item, $n['nom_reponse'], $r);
                                                            $rep_candidat[] = $rep_cand[0]['id_reponse'];
                                                        }
                                                    } else {
                                                        $rep_cand = get_reponse_item_val($item, $n['nom_reponse'], $post[$n['nom_reponse']]);
                                                        $rep_candidat[] = $rep_cand[0]['id_reponse'];
                                                    }
                                                }
                                            }
                                            foreach ($rep_item as $ri) {
                                                //recuperer dim avec id_reponse
                                                $dim = get_dim_from_reponse($item, $ri);
                                                if (in_array($ri, $rep_candidat)) {
                                                    foreach ($dim as $d) {
                                                        enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_rep']);
                                                    }
                                                    //bonne reponse
                                                } else {
                                                    //mauvaise_reponse
                                                    foreach ($dim as $d) {
                                                        enregistrement_score($d['id_dim'], $item, $_POST['test'], $_POST['nid'], $d['score_non_rep']);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            } else {
                                // pas de reponse sur l'item
                                foreach ($zero_rep as $zero) {
                                    enregistrement_score($zero['id_dimension'], $item, $_POST['test'], $_POST['nid'], $zero['score_zero_rep']);
                                }
                            }
                        }
                    }
                    header("Location: index.php?controleur=participant&tache=home_candidat");
                } else {
                    $page['message'] = $message['outdated_item'];
                }
            }
        }
    } else {
        $page['vue'] = "erreur_droit.vue.php";
    }
}