$sql = "INSERT INTO j_eleves_groupes SET login='******', id_groupe='{$lig_grp_inscr->id_groupe}', periode='" . $change_inscription_eleves_periodes[$loop] . "';"; $insert = mysqli_query($GLOBALS["mysqli"], $sql); if ($insert) { $nb_reg_ok++; } else { $msg .= "<br />ERREUR lors de l'inscription de " . get_nom_prenom_eleve($current_eleve_login) . " du groupe n°" . $lig_grp_inscr->id_groupe . " en période " . $change_inscription_eleves_periodes[$loop]; } } } } } else { for ($loop = 0; $loop < count($change_inscription_eleves_periodes); $loop++) { $sql = "SELECT login FROM j_eleves_groupes WHERE id_groupe='{$lig_grp_inscr->id_groupe}' AND periode='" . $change_inscription_eleves_periodes[$loop] . "';"; $res_ele_inscr = mysqli_query($GLOBALS["mysqli"], $sql); while ($lig_ele_inscr = mysqli_fetch_object($res_ele_inscr)) { if (!test_before_eleve_removal($lig_ele_inscr->login, $lig_grp_inscr->id_groupe, $change_inscription_eleves_periodes[$loop])) { $msg .= "<br />" . get_nom_prenom_eleve($lig_ele_inscr->login) . " a un bulletin non vide en période " . $change_inscription_eleves_periodes[$loop]; } elseif (nb_notes_ele_dans_tel_enseignement($lig_ele_inscr->login, $lig_grp_inscr->id_groupe, $change_inscription_eleves_periodes[$loop]) > 0) { $msg .= "<br />" . get_nom_prenom_eleve($lig_ele_inscr->login) . " a un bulletin non vide en période " . $change_inscription_eleves_periodes[$loop]; } else { $sql = "DELETE FROM j_eleves_groupes WHERE login='******' AND id_groupe='{$lig_grp_inscr->id_groupe}' AND periode='" . $change_inscription_eleves_periodes[$loop] . "';"; $del = mysqli_query($GLOBALS["mysqli"], $sql); if ($del) { $nb_reg_ok++; } else { $msg .= "<br />ERREUR lors de la désinscription de " . get_nom_prenom_eleve($lig_ele_inscr->login) . " du groupe n°" . $lig_grp_inscr->id_groupe . " en période " . $change_inscription_eleves_periodes[$loop]; } } } } }
echo "<td>" . $current_group["eleves"]["users"][$e_login]["classe"] . "</td>"; } echo "\n"; } foreach ($current_group["periodes"] as $period) { if ($period["num_periode"] != "") { echo "<td align='center'>"; //========================= //$sql="SELECT 1=1 FROM j_eleves_classes WHERE login='******' AND id_classe='".$new_classe."' AND periode='".$period["num_periode"]."'"; $sql = "SELECT 1=1 FROM j_eleves_classes WHERE login='******' AND {$chaine_sql_classe} AND periode='" . $period["num_periode"] . "'"; //========================= $res_test = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_test) > 0) { // Test sur la présence de notes dans cn ou de notes/app sur bulletin $bull_non_vide = "n"; if (!test_before_eleve_removal($e_login, $current_group['id'], $period["num_periode"])) { $bull_non_vide = "y"; if ($_SESSION['statut'] == 'professeur') { echo "<a href='../saisie/saisie_appreciations.php?id_groupe={$id_groupe}&periode_cn=" . $period["num_periode"] . "#saisie_app_" . $e_login . "' target='_blank' title=\"Voir, dans une nouvelle fenêtre, mes saisies dans le bulletin de cet élève.\"><img id='img_bull_non_vide_" . $period["num_periode"] . "_" . $num_eleve . "' src='../images/icons/bulletin_16.png' width='16' height='16' title='Bulletin non vide' alt='Bulletin non vide' /></a>"; } else { echo "<img id='img_bull_non_vide_" . $period["num_periode"] . "_" . $num_eleve . "' src='../images/icons/bulletin_16.png' width='16' height='16' title='Bulletin non vide' alt='Bulletin non vide' />"; } } $sql = "SELECT DISTINCT id_devoir FROM cn_notes_devoirs cnd, cn_devoirs cd, cn_cahier_notes ccn WHERE (cnd.login = '******' AND cnd.statut='' AND cnd.id_devoir=cd.id AND cd.id_racine=ccn.id_cahier_notes AND ccn.id_groupe = '" . $current_group['id'] . "' AND ccn.periode = '" . $period["num_periode"] . "')"; $test_cn = mysqli_query($GLOBALS["mysqli"], $sql); $nb_notes_cn = mysqli_num_rows($test_cn); if ($nb_notes_cn > 0) { if ($_SESSION['statut'] == 'professeur') { echo "<a href='../cahier_notes/index.php??id_groupe={$id_groupe}&periode_num=" . $period["num_periode"] . "#saisie_app_" . $e_login . "' target='_blank' title=\"Voir, dans une nouvelle fenêtre, mes saisies dans le carnet de notes pour cet élève.\"><img id='img_cn_non_vide_" . $period["num_periode"] . "_" . $num_eleve . "' src='../images/icons/cn_16.png' width='16' height='16' title='Carnet de notes non vide: {$nb_notes_cn} notes' alt='Carnet de notes non vide: {$nb_notes_cn} notes' /></a>"; } else { echo "<img id='img_cn_non_vide_" . $period["num_periode"] . "_" . $num_eleve . "' src='../images/icons/cn_16.png' width='16' height='16' title='Carnet de notes non vide: {$nb_notes_cn} notes' alt='Carnet de notes non vide: {$nb_notes_cn} notes' />";
$sql = "SELECT 1=1 FROM j_eleves_groupes WHERE login='******' AND id_groupe='" . $lig_grp->id_groupe . "';"; //echo "$sql<br />"; $res_ele_grp = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_ele_grp) == 0 && $tabligne[$col_option[$loop]] != "") { for ($loop_per = 1; $loop_per < $nb_per + 1; $loop_per++) { $sql = "INSERT INTO j_eleves_groupes SET login='******', id_groupe='" . $lig_grp->id_groupe . "', periode='{$loop_per}';"; //echo "$sql<br />"; $insert = mysqli_query($GLOBALS["mysqli"], $sql); if (!$insert) { echo "<span style='color:red'>ERREUR</span> "; } } echo "<span style='color:green' title=\"Inscription de l'élève dans les groupes de " . $tabligne_entete[$col_option[$loop]] . "\">" . $tabligne_entete[$col_option[$loop]] . "</span> "; } elseif (mysqli_num_rows($res_ele_grp) > 0 && $tabligne[$col_option[$loop]] == "") { for ($loop_per = 1; $loop_per < $nb_per + 1; $loop_per++) { if (test_before_eleve_removal($lig_ele->login, $lig_grp->id_groupe, $loop_per)) { $sql = "DELETE FROM j_eleves_groupes WHERE login='******' AND id_groupe='" . $lig_grp->id_groupe . "' AND periode='{$loop_per}';"; //echo "$sql<br />"; $del = mysqli_query($GLOBALS["mysqli"], $sql); if (!$del) { echo "<span style='color:red'>ERREUR</span> "; } echo "<span style='color:red' title=\"Désinscription de l'élève des groupes de " . $tabligne_entete[$col_option[$loop]] . "\">" . $tabligne_entete[$col_option[$loop]] . "</span> "; } else { echo "<span style='color:plum' title=\"Désinscription impossible de l'élève des groupes de " . $tabligne_entete[$col_option[$loop]] . " en période {$loop_per}.\">" . $tabligne_entete[$col_option[$loop]] . " (bulletins non vides P{$loop_per})</span> "; } } } } } else { if ($tabligne[$col_option[$loop]] != "") {
/** Met à jour un groupe dans la base * * * * @param int $_id_groupe Id du groupe * @param text $_name Le nom court * @param text $_description Description du groupe * @param text $_matiere l'id de la matière dans j_groupes_matieres * @param array $_classes tableau des Id des classes * @param type $_professeurs tableau des logins des enseignants * @param type $_eleves tableau des logins des élèves concernés * @return bool TRUE si tout c'est bien passé * @see get_group() * @see get_period_number() * @see test_before_eleve_removal() */ function update_group($_id_groupe, $_name, $_description, $_matiere, $_classes, $_professeurs, $_eleves) { global $msg; $former_groupe = get_group($_id_groupe); $errors = false; if ($_name != $former_groupe["name"] or $_description != $former_groupe["description"]) { $sql = "UPDATE groupes SET name = '" . $_name . "', description = '" . $_description . "' WHERE id = '" . $_id_groupe . "';"; $update = mysqli_query($GLOBALS["mysqli"], $sql); if (!$update) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } if ($_matiere != $former_groupe["matiere"]["matiere"]) { $sql = "UPDATE j_groupes_matieres SET id_matiere = '" . $_matiere . "' WHERE id_groupe = '" . $_id_groupe . "';"; $update2 = mysqli_query($GLOBALS["mysqli"], $sql); if (!$update2) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } // Mise à jour des classes $deleted_classes = array_diff($former_groupe["classes"]["list"], $_classes); $new_classes = array_diff($_classes, $former_groupe["classes"]["list"]); // Avant de modifier quoi que ce soit, il faut s'assurer que les nouvelles classes ont le même nombre de périodes $check_periods = get_period_number($former_groupe["classes"]["list"][0]); $per_error = false; foreach ($new_classes as $id_classe) { if (get_period_number($id_classe) != $check_periods) { $per_error = true; $msg .= "ERREUR: get_period_number({$id_classe})=" . get_period_number($id_classe) . " mais \$check_periods={$check_periods}<br />"; } } if (!$per_error) { $mat_priority = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT priority FROM matieres WHERE matiere = '" . $_matiere . "'"), 0); foreach ($new_classes as $id_classe) { $sql = "INSERT into j_groupes_classes SET id_groupe = '" . $_id_groupe . "', id_classe = '" . $id_classe . "', priorite = '" . $mat_priority . "';"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (!$res) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } foreach ($deleted_classes as $id_classe) { $sql = "DELETE FROM j_groupes_classes WHERE (id_groupe = '" . $_id_groupe . "' AND id_classe = '" . $id_classe . "');"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (!$res) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } } else { $errors = true; } // Mise à jour des professeurs $deleted_profs = array_diff((array) $former_groupe["profs"]["list"], (array) $_professeurs); $new_profs = array_diff((array) $_professeurs, (array) $former_groupe["profs"]["list"]); foreach ($new_profs as $p_login) { $sql = "insert into j_groupes_professeurs set id_groupe = '" . $_id_groupe . "', login = '******';"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (!$res) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } foreach ($deleted_profs as $p_login) { $sql = "delete from j_groupes_professeurs where (id_groupe = '" . $_id_groupe . "' and login = '******');"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (!$res) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } // Mise à jour des élèves // Cette première étape est juste pour les situations où l'on a envoyé un tableau vite comme argument // signalant que l'on ne veut pas manipuler les élèves if (count($_eleves) != 0) { foreach ($former_groupe["periodes"] as $period) { $deleted_eleves = array_diff((array) $former_groupe["eleves"][$period["num_periode"]]["list"], (array) $_eleves[$period["num_periode"]]); $new_eleves = array_diff((array) $_eleves[$period["num_periode"]], (array) $former_groupe["eleves"][$period["num_periode"]]["list"]); foreach ($new_eleves as $e_login) { $sql = "insert into j_eleves_groupes set id_groupe = '" . $_id_groupe . "', login = '******', periode = '" . $period["num_periode"] . "';"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (!$res) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } foreach ($deleted_eleves as $e_login) { if (test_before_eleve_removal($e_login, $_id_groupe, $period["num_periode"])) { $sql = "delete from j_eleves_groupes where (id_groupe = '" . $_id_groupe . "' and login = '******' and periode = '" . $period["num_periode"] . "');"; $res = mysqli_query($GLOBALS["mysqli"], $sql); if (!$res) { $errors = true; $msg .= "ERREUR sur {$sql}<br />"; } } else { $msg .= "Erreur lors de la suppression de l'élève ayant le login '" . $e_login . "', pour la période '" . $period["num_periode"] . " (des notes ou appréciations existent).<br/>"; } } } } if ($errors) { return FALSE; } else { return TRUE; } }
echo "<p>Liste des élèves en " . htmlspecialchars($current_group["name"]) . " - " . htmlspecialchars($current_group["description"]) . " (<i>" . $current_group["classlist_string"] . "</i>)<br />\n"; /* echo "<pre>"; print_r($current_group); echo "</pre>"; */ $cpt = 0; foreach ($current_group["eleves"][$num_periode]["users"] as $tab_ele) { // Pour ne traiter que les élèves de la classe courante: $sql = "SELECT 1=1 FROM j_eleves_classes WHERE login='******'login'] . "' AND periode='{$num_periode}' AND id_classe='{$id_classe}';"; $test = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($test) > 0) { if ($cpt > 0) { echo ", "; } if (test_before_eleve_removal($tab_ele['login'], $current_group['id'], $num_periode)) { echo "<span style='color: red'>"; } else { echo "<span style='color: green'>"; } echo $tab_ele['nom'] . " " . $tab_ele['prenom']; echo "</span>\n"; $cpt++; } } echo "</p>\n"; } if (!isset($_GET['confirmation_menage']) || $_GET['confirmation_menage'] == 'n') { echo "<p><a href='" . $_SERVER['PHP_SELF'] . "?id_classe={$id_classe}&num_periode={$num_periode}&confirmation_menage=y" . add_token_in_url() . "'>Confirmer les désinscriptions</a>.</p>\n"; } echo "<p><br /></p>\n";
foreach ($current_tab_ele['users'] as $current_login_ele => $current_ele) { $temoin = ""; if (in_array($current_login_ele, $diff)) { $temoin = "<img src='../images/icons/ico_attention.png' class='icone16' alt='Attention' "; /* if((isset($current_ele['date_sortie']))&&($current_ele['date_sortie']!="")) { $temoin.="title=\"L'élève a quitté l'établissement le ".$current_ele['date_sortie']."\" "; } */ $temoin .= "/>"; /* echo "<pre>"; print_r($current_ele); echo "</pre>"; */ if (!test_before_eleve_removal($current_login_ele, $current_id_groupe, $num_periode)) { if ($acces_prepa_conseil_edit_limite == "y" && $current_ele['classe'] != "") { $temoin .= "<a href='../prepa_conseil/edit_limite.php?choix_edit=2&login_eleve=" . $current_login_ele . "&id_classe=" . $current_ele['classe'] . "&periode1=" . $num_periode . "&periode2=" . $num_periode . "' target='_blank'>"; $temoin .= "<img src='../images/icons/bulletin_16.png' width='16' height='16' title='Bulletin non vide' alt='Bulletin non vide' />"; $temoin .= "</a>"; } else { $temoin .= "<img src='../images/icons/bulletin_16.png' width='16' height='16' title='Bulletin non vide' alt='Bulletin non vide' />"; } $temoin_bull_ou_cn_non_vide++; } $nb_notes_cn = nb_notes_ele_dans_tel_enseignement($current_login_ele, $current_id_groupe, $num_periode); if ($nb_notes_cn > 0) { $temoin .= "<img src='../images/icons/cn_16.png' width='16' height='16' title='Carnet de notes non vide: {$nb_notes_cn} notes' alt='Carnet de notes non vide: {$nb_notes_cn} notes' />"; $temoin_bull_ou_cn_non_vide++; } }
echo "<td style='text-align:center'>\n"; if ($_SESSION['statut'] == "administrateur") { echo "<input type='checkbox' id='case" . $i . "_" . $j . "' name='" . $id_groupe . "_" . $j . "' onchange='changement();' value='y' "; if (mysqli_num_rows($test) > 0) { echo "checked "; } echo "/>\n"; } else { if (mysqli_num_rows($test) == 0) { echo " \n"; } else { echo "<img src='../images/enabled.png' width='15' height='15' alt='Inscrit' />\n"; } } // Test sur la présence de notes dans cn ou de notes/app sur bulletin if (!test_before_eleve_removal($login_eleve, $id_groupe, $j)) { echo "<img id='img_bull_non_vide_" . $i . "_" . $j . "' src='../images/icons/bulletin_16.png' width='16' height='16' title='Bulletin non vide' alt='Bulletin non vide' />"; } $sql = "SELECT DISTINCT id_devoir FROM cn_notes_devoirs cnd, cn_devoirs cd, cn_cahier_notes ccn WHERE (cnd.login = '******' AND cnd.statut='' AND cnd.id_devoir=cd.id AND cd.id_racine=ccn.id_cahier_notes AND ccn.id_groupe = '" . $id_groupe . "' AND ccn.periode = '" . $j . "')"; $test_cn = mysqli_query($GLOBALS["mysqli"], $sql); $nb_notes_cn = mysqli_num_rows($test_cn); if ($nb_notes_cn > 0) { echo "<img id='img_cn_non_vide_" . $i . "_" . $j . "' src='../images/icons/cn_16.png' width='16' height='16' title='Carnet de notes non vide: {$nb_notes_cn} notes' alt='Carnet de notes non vide: {$nb_notes_cn} notes' />"; //echo "$sql<br />"; } if (isset($tab_sig[$j]) && isset($tab_sig[$j][$id_groupe])) { $info_erreur = $tab_sig[$j][$id_groupe]; echo "<img id='img_erreur_affect_" . $i . "_" . $j . "' src='../images/icons/flag2.gif' width='17' height='18' title='" . $info_erreur . "' alt='" . $info_erreur . "' />"; } echo "</td>\n"; /*