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"; } }
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"; } }