0) {
$temoin_ele_clas_ok="y";
break;
}
}
if($temoin_ele_clas_ok=="n") {
$msg.="ANOMALIE : Vous essayez d'inscrire ".get_nom_prenom_eleve($login_ele[$j])." dans des groupes alors que sa classe n'est associée à aucun des groupes traités ici.
";
}
else {
// Classe de l'élève courant sur chaque période
unset($current_id_classe_ele);
for($m=1;$m<=$maxper;$m++) {
$sql="SELECT id_classe FROM j_eleves_classes WHERE login='".$login_ele[$j]."' AND periode='$m';";
//echo "$sql
";
$res_clas=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_clas)>0) {
$lig_clas=mysqli_fetch_object($res_clas);
$current_id_classe_ele[$m]=$lig_clas->id_classe;
//echo "\$current_id_classe_ele[$m]=$current_id_classe_ele[$m]
\n";
}
}
// Boucle sur les groupes
for($i=0;$i\n";
// Boucle sur les périodes
for($m=1;$m<=$maxper;$m++) {
if(isset($current_id_classe_ele[$m])) {
$requete_insertion='';
$requete_insertion_assoc_grp_clas='';
//echo "Période $m
\n";
// Si la case est cochée pour cet élève, ce groupe et cette période
if(isset($grp_eleve[$i][$m][$j])) {
//echo "\$grp_eleve[$i][$m][$j]=".$grp_eleve[$i][$m][$j]."
\n";
//if($grp_eleve[$i][$m][$j]==$id_groupe[$i]) {
//echo "Le groupe est sélectionné: $id_groupe[$i]
\n";
if(!in_array($login_ele[$j],$tab_eleve[$id_groupe[$i]][$m])) {
// On affecte l'élève dans le groupe
//$sql="INSERT INTO j_eleves_groupes SET login='".$login_ele[$j]."', id_groupe='".$id_groupe[$i]."', periode='$num_periode';";
//$insert=mysql_query($sql);
$requete_insertion="INSERT INTO j_eleves_groupes SET login='".$login_ele[$j]."', id_groupe='".$id_groupe[$i]."', periode='$m';";
// Vérification s'il y a bien déjà une association du groupe avec la classe:
$sql="SELECT 1=1 FROM j_groupes_classes WHERE id_classe='$current_id_classe_ele[$m]' AND id_groupe='".$id_groupe[$i]."';";
$test_clas_grp=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test_clas_grp)==0) {
// Récupérer les paramètres de j_groupes_classes pour le groupe actuel pour imposer le même dans l'association avec la classe de l'élève courant
$sql="SELECT * FROM j_groupes_classes WHERE id_groupe='".$id_groupe[$i]."' LIMIT 1;";
$res_grp=mysqli_query($GLOBALS["mysqli"], $sql);
$lig_grp=mysqli_fetch_object($res_grp);
$requete_insertion_assoc_grp_clas="INSERT INTO j_groupes_classes SET id_classe='$current_id_classe_ele[$m]', id_groupe='".$id_groupe[$i]."', priorite='$lig_grp->priorite', coef='$lig_grp->coef', categorie_id='$lig_grp->categorie_id', saisie_ects='$lig_grp->saisie_ects', valeur_ects='$lig_grp->valeur_ects', mode_moy='$lig_grp->mode_moy';";
}
}
}
else {
//echo "Le groupe n'est pas sélectionné $id_groupe[$i]
\n";
if(in_array($login_ele[$j],$tab_eleve[$id_groupe[$i]][$m])) {
//echo "$login_ele[$j] était dans le groupe.
On va tester si on peut le désinscrire.
";
// On va tester si on peut désinscrire l'élève
if(test_before_eleve_grp_removal($login_ele[$j], $id_groupe[$i], $m)) {
//echo "On peut le désinscrire.
";
// On désinscrit effectivement
$sql="DELETE FROM j_eleves_groupes WHERE login='".$login_ele[$j]."' AND id_groupe='".$id_groupe[$i]."' AND periode='$m';";
//echo "$sql
";
$suppr=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$suppr) {$msg.="Echec de la désinscription de $login_ele[$j] du groupe $nom_groupe[$i] ($id_groupe[$i]) pour la période $m.
";}
else {$nb_modif++;}
}
else {
$msg.="Des données bloquent la désincription de ".get_nom_prenom_eleve($login_ele[$j])." du groupe ".$nom_groupe[$i]." ($id_groupe[$i]) pour la période $m.
";
$temoin_insertion_possible="n";
}
}
}
if(($temoin_insertion_possible=="y")&&($requete_insertion!='')) {
// On affecte l'élève dans son nouveau groupe
$insert=mysqli_query($GLOBALS["mysqli"], $requete_insertion);
if(!$insert) {$msg.="Echec de l'inscription de $login_ele[$j] dans le groupe $nom_groupe[$i] ($id_groupe[$i]) pour la période $m.
";} else {$nb_modif++;}
if($requete_insertion_assoc_grp_clas!='') {
$insert=mysqli_query($GLOBALS["mysqli"], $requete_insertion_assoc_grp_clas);
if(!$insert) {$msg.="Echec de l'insertion de l'association du groupe $nom_groupe[$i] ($id_groupe[$i]) avec la classe $current_id_classe_ele[$m].
";}
}
}
}
else {
$msg.="Non traité pour le groupe n°".$id_groupe[$i]." : ".get_nom_prenom_eleve($login_ele[$j])." n'est dans aucune classe sur la période $m.
";
}
}
}
}
}
if($nb_modif>0) {
$msg.="$nb_modif modification(s) enregistrée(s).
";
}
}
}
$themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?';
//**************** EN-TETE **************************************
$titre_page = "Répartition d'élèves dans des groupes";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE **********************************
//debug_var();
//=================================================================================================
if($_SESSION['statut']=="administrateur") {
// Choix de la classe
if(!isset($id_classe)) {
echo "";
echo " Retour";
echo "
\n";
echo "Choix des classes :
\n";
$sql="SELECT DISTINCT c.* FROM classes c ORDER BY classe;";
$call_classes=mysqli_query($GLOBALS["mysqli"], $sql);
$nb_classes=mysqli_num_rows($call_classes);
echo "
\n";
echo "
ATTENTION : Cette page de répartition ne permet pas d'inscrire ou de conserver l'inscription dans plus d'un des groupes qui seront sélectionnés à l'affichage.
Parmi les groupes affichés, un élève ne pourra pas être inscrit dans plus d'un d'entre eux.
\n";
require("../lib/footer.inc.php");
die();
}
// Choix des groupes
if(!isset($id_groupe)) {
echo "\n";
echo " Retour";
echo " | Choisir d'autres classes\n";
echo "
\n";
echo "\n";
echo "
ATTENTION : Cette page de répartition ne permet pas d'inscrire ou de conserver l'inscription dans plus d'un des groupes qui seront sélectionnés à l'affichage.
Parmi les groupes affichés, un élève ne pourra pas être inscrit dans plus d'un d'entre eux.
\n";
require("../lib/footer.inc.php");
die();
}
}
else {
if(!isset($id_grp_groupe)) {
echo "
Retour
Choix du $groupe_de_groupes
Vous êtes autorisé à modifier la liste des élèves des enseignements des $groupes_de_groupes suivants :
";
$sql="SELECT DISTINCT id_grp_groupe FROM grp_groupes_admin WHERE login='".$_SESSION['login']."';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
// Les tests sont faits plus haut... on ne devrait pas arriver là.
echo "
style='color:red'>Aucun $groupe_de_groupes trouvé.
";
require("../lib/footer.inc.php");
die();
}
echo "
ATTENTION : Cette page de répartition ne permet pas d'inscrire ou de conserver l'inscription dans plus d'un des groupes qui seront sélectionnés à l'affichage.
Parmi les groupes affichés, un élève ne pourra pas être inscrit dans plus d'un d'entre eux.
";
require("../lib/footer.inc.php");
die();
}
}
if(!isset($num_periode)) {
if($_SESSION['statut']=='administrateur') {
echo "\n";
echo "Choisissez la période
\n";
$maxper=0;
echo "\n";
}
else {
echo "\n";
echo " Retour";
echo " | Choisir un autre ".$groupe_de_groupes."
\n";
echo "Choisissez la période
\n";
$maxper=0;
$sql="SELECT max(num_periode) AS maxper FROM grp_groupes_groupes ggg, j_groupes_classes jgc, periodes p WHERE ggg.id_grp_groupe='".$id_grp_groupe."' AND ggg.id_groupe=jgc.id_groupe AND jgc.id_classe=p.id_classe;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)==0) {
echo "Aucune classe avec période n'a été trouvée pour le ou les groupes associés au ".$groupe_de_groupes." choisi.
";
require("../lib/footer.inc.php");
die();
}
echo "";
$lig=mysqli_fetch_object($res);
for($i=1;$i<=$lig->maxper;$i++) {
echo "Période $i
";
}
echo "
";
}
echo "
\n";
echo "NOTES :
Vous allez effectuer la répartition entre les groupes sur une période dans un premier temps, et dans un deuxième temps, vous pourrez recopier le paramétrage de cette période pour d'autres périodes.
ATTENTION : Cette page de répartition ne permet pas d'inscrire ou de conserver l'inscription dans plus d'un des groupes qui seront sélectionnés à l'affichage.
Parmi les groupes affichés, un élève ne pourra pas être inscrit dans plus d'un d'entre eux.
";
require("../lib/footer.inc.php");
die();
}
//=================================================================================================
// On passe à la répartition
if(!isset($_POST['recopie_select'])) {
if($_SESSION['statut']!='administrateur') {
echo "
Retour
| Choisir un autre ".$groupe_de_groupes."
| Choisir une autre période
";
$id_groupe=array();
$sql="SELECT DISTINCT id_groupe FROM grp_groupes_groupes WHERE id_grp_groupe='".$id_grp_groupe."';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res)>0) {
while($lig=mysqli_fetch_object($res)) {
$id_groupe[]=$lig->id_groupe;
}
}
$id_classe=array();
for($i=0;$i0) {
while($lig=mysqli_fetch_object($res)) {
if(!in_array($lig->id_classe, $id_classe)) {
$id_classe[]=$lig->id_classe;
}
}
}
}
}
else {
echo "\n";
}
//===============================
echo "";
echo "\n";
echo "\n";
echo "
\n";
echo "\n";
//===============================
echo "\n";
echo "\n";
echo "
\n";
//===============================
echo "\n";
//===============================
echo "
\n";
echo "\n";
echo "ATTENTION : Cette page de répartition ne permet pas d'inscrire ou de conserver l'inscription dans plus d'un des groupes qui seront sélectionnés à l'affichage.
Parmi les groupes affichés, un élève ne pourra pas être inscrit dans plus d'un d'entre eux.
";
//====================================
/*
echo "\n";
*/
}
else {
// Recopie ou copie inverse des sélections pour d'autres périodes
echo "\n";
//===============================
echo "\n";
echo "\n";
echo "
\n";
//===============================
$maxper=0;
for($i=0;$i0) {
$lig_per=mysqli_fetch_object($res);
if($lig_per->maxper>$maxper) {$maxper=$lig_per->maxper;}
}
else {
echo "La classe ".get_class_from_id($id_classe[$i])." n'a pas de période?
\n";
}
}
//echo "maxper=$maxper
";
echo "\n";
//===============================
echo "\n";
//===============================
echo "
\n";
//===================================
/*
echo "\n";
*/
// 20130919
$init_coches="var tab_suffixe_coller=new Array();\n";
for($loop=0;$loop
$init_coches;
function update_liens_coller_visibles() {
for(i=0;i\n";
}
require("../lib/footer.inc.php");
?>