security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } $sql="SELECT 1=1 FROM droits WHERE id='/groupes/modify_grp_group.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/groupes/modify_grp_group.php', administrateur='V', professeur='F', cpe='F', scolarite='F', eleve='F', responsable='F', secours='F', autre='F', description='Gestion des ensembles de groupes', statut='';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } $groupe_de_groupes=getSettingValue('denom_groupe_de_groupes'); if($groupe_de_groupes=="") { $groupe_de_groupes="ensemble de groupes"; } $groupes_de_groupes=getSettingValue('denom_groupes_de_groupes'); if($groupes_de_groupes=="") { $groupes_de_groupes="ensembles de groupes"; } // Initialisation des variables utilisées dans le formulaire $id_classe = isset($_GET['id_classe']) ? $_GET['id_classe'] : (isset($_POST['id_classe']) ? $_POST['id_classe'] : null); if(!isset($id_classe)) { if(isset($id_grp_groupe)) { $sql="SELECT id_classe FROM j_groupes_classes jgc, grp_groupes_groupes ggg WHERE ggg.id_grp_groupe='$id_grp_groupe' AND ggg.id_groupe=jgc.id_groupe LIMIT 1"; $res=mysqli_query($GLOBALS["mysqli"], $sql); $lig=mysqli_fetch_object($res); $id_classe=$lig->id_classe; } if(!isset($id_classe)) { // On récupère la première classe avec période $sql="SELECT c.id FROM classes c, periodes p WHERE c.id=p.id_classe ORDER BY c.classe LIMIT 1;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); $lig=mysqli_fetch_object($res); $id_classe=$lig->id; } } $classe=get_nom_classe($id_classe); $sql="CREATE TABLE IF NOT EXISTS grp_groupes ( id int(11) NOT NULL AUTO_INCREMENT, nom_court varchar(20) NOT NULL, nom_complet varchar(100) NOT NULL, description text NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;"; $create_table=mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS grp_groupes_admin ( id int(11) NOT NULL AUTO_INCREMENT, id_grp_groupe int(11) NOT NULL, login varchar(50) NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;"; $create_table=mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS grp_groupes_groupes ( id int(11) NOT NULL AUTO_INCREMENT, id_grp_groupe int(11) NOT NULL, id_groupe int(11) NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;"; $create_table=mysqli_query($GLOBALS["mysqli"], $sql); $mode = isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : null); $id_grp_groupe = isset($_POST['id_grp_groupe']) ? $_POST['id_grp_groupe'] : (isset($_GET['id_grp_groupe']) ? $_GET['id_grp_groupe'] : null); $tab_id_classe = isset($_POST['tab_id_classe']) ? $_POST['tab_id_classe'] : (isset($_GET['tab_id_classe']) ? $_GET['tab_id_classe'] : null); $id_groupe = isset($_POST['id_groupe']) ? $_POST['id_groupe'] : (isset($_GET['id_groupe']) ? $_GET['id_groupe'] : array()); $msg=""; $nom_court=isset($_POST['nom_court']) ? $_POST['nom_court'] : ""; $nom_complet=isset($_POST['nom_complet']) ? $_POST['nom_complet'] : ""; $description=isset($_POST['description']) ? $_POST['description'] : ""; if((isset($mode))&&($mode=='valider_creation_grp_groupes')) { check_token(); $nom_court=remplace_accents($nom_court, "all"); if(($nom_court=="")||(!preg_match("/^[A-Za-z]/", $nom_court))) { $msg.="Le nom court est invalide.
"; $mode="creer_grp_groupes"; } else { if($nom_complet=="") { $nom_complet=$nom_court; } if (isset($NON_PROTECT["description"])){ $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); } else { $description=""; } $sql="INSERT INTO grp_groupes SET nom_court='$nom_court', nom_complet='$nom_complet', description='$description';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert) { $msg.="Erreur lors de la création du $groupe_de_groupes.
"; $mode="creer_grp_groupes"; } else { $id_grp_groupe=mysqli_insert_id($GLOBALS["mysqli"]); $mode="modifier_grp_groupes"; } } } if((isset($mode))&&($mode=='valider_modification_grp_groupes')) { check_token(); $mode="modifier_grp_groupes"; $nom_court=remplace_accents($nom_court, "all"); if(($nom_court=="")||(!preg_match("/^[A-Za-z]/", $nom_court))) { $msg.="Le nom court est invalide.
"; } else { if (isset($NON_PROTECT["description"])){ $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); } else { $description=""; } $sql="UPDATE grp_groupes SET nom_court='$nom_court', nom_complet='$nom_complet', description='$description' WHERE id='$id_grp_groupe';"; //echo "$sql
"; $update=mysqli_query($GLOBALS["mysqli"], $sql); if(!$update) { $msg.="Erreur lors de la mise à jour du $groupe_de_groupes.
"; } else { $msg.="$groupe_de_groupes mis à jour.
"; } } } if(isset($id_grp_groupe)) { $sql="SELECT * FROM grp_groupes WHERE id='$id_grp_groupe';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { $lig=mysqli_fetch_object($res); $nom_court=$lig->nom_court; $nom_complet=$lig->nom_complet; $description=$lig->description; } } if((isset($mode))&&($mode=='supprimer_grp_groupes')&&(isset($id_grp_groupe))) { check_token(); $sql="DELETE FROM grp_groupes_groupes WHERE id_grp_groupe='$id_grp_groupe';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { $msg.="Erreur lors de la suppression des associations avec des groupes pour le $groupe_de_groupes n°$id_grp_groupe.
"; } else { $sql="DELETE FROM grp_groupes_admin WHERE id_grp_groupe='$id_grp_groupe';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { $msg.="Erreur lors de la suppression des associations avec des utilisateurs pour le $groupe_de_groupes n°$id_grp_groupe.
"; } else { $sql="DELETE FROM grp_groupes WHERE id='$id_grp_groupe';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { $msg.="Erreur lors de la suppression du $groupe_de_groupes n°$id_grp_groupe.
"; } else { $msg.="$groupe_de_groupes n°$id_grp_groupe supprimé.
"; } } } unset($mode); } if((isset($mode))&&($mode=='valider_ajout_user')&&(isset($id_grp_groupe))) { check_token(); $mode="modifier_grp_groupes"; $sql="DELETE FROM grp_groupes_admin WHERE id_grp_groupe='$id_grp_groupe';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if(!$del) { $msg.="Erreur lors du nettoyage préalable des utilisateurs adminstrateurs du $groupe_de_groupes n°$id_grp_groupe.
"; } else { $login_user=isset($_POST['login_user']) ? $_POST['login_user'] : ""; $cpt=0; for($loop=0;$loop"; } else { $cpt++; } } $msg.="$cpt utilisateur(s) est(sont) autorisé(s) à modifier la liste des élèves des groupes du $groupe_de_groupes n°$id_grp_groupe.
"; } } if((isset($mode))&&($mode=='valider_ajout_groupe')&&(isset($id_grp_groupe))) { check_token(); $mode="modifier_grp_groupes"; $tab_groupes_deja=array(); $sql="SELECT DISTINCT id_groupe FROM grp_groupes_groupes WHERE id_grp_groupe='$id_grp_groupe';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); while($lig=mysqli_fetch_object($res)) { $tab_groupes_deja[]=$lig->id_groupe; } $cpt=0; for($loop=0;$loop"; } else { $cpt++; } // Pour ne pas ajouter plusieurs fois les mêmes $tab_groupes_deja[]=$id_groupe[$loop]; } } $msg.="$cpt groupe(s) ajouté(s).
"; $cpt=0; for($loop=0;$loop"; } else { $cpt++; } } } $msg.="$cpt groupe(s) retiré(s).
"; } $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ************************************** $titre_page = ucfirst($groupes_de_groupes); require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ********************************** //debug_var(); //echo "id_classe=$id_classe
"; echo "
\n"; ?>

Retour Retour 0){ $id_class_prec=0; $id_class_suiv=0; $temoin_tmp=0; $cpt_classe=0; $num_classe=-1; while($lig_class_tmp=mysqli_fetch_object($res_class_tmp)){ if($lig_class_tmp->id==$id_classe){ // Index de la classe dans les \n"; $temoin_tmp=1; if($lig_class_tmp=mysqli_fetch_object($res_class_tmp)){ $chaine_options_classes.="\n"; $id_class_suiv=$lig_class_tmp->id; } else{ $id_class_suiv=0; } } else { $chaine_options_classes.="\n"; } if($temoin_tmp==0){ $id_class_prec=$lig_class_tmp->id; } $cpt_classe++; } } // ================================= if($id_class_prec!=0){echo " | Classe préc.";} if($chaine_options_classes!="") { echo "\n"; echo " | \n"; } if($id_class_suiv!=0){echo " | Classe suiv.";} //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if(!isset($mode)) { echo "

Choisissez :

"; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ elseif($mode=="creer_grp_groupes") { echo " | Index $groupes_de_groupes

".add_token_field()."

Créer un $groupe_de_groupes :

Nom court :
Nom complet :
Description :

"; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ elseif(($mode=="modifier_grp_groupes")&&(isset($id_grp_groupe))) { // ================================= $chaine_options_grp_groupe=""; $sql="SELECT * FROM grp_groupes ORDER BY nom_court, nom_complet;"; $res_grp_tmp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_grp_tmp)>0){ $id_grp_prec=0; $id_grp_suiv=0; $temoin_tmp=0; $cpt_grp=0; $num_grp=-1; while($lig_grp_tmp=mysqli_fetch_object($res_grp_tmp)) { if($lig_grp_tmp->id==$id_grp_groupe){ // Index du grp_groupe dans les \n"; $temoin_tmp=1; if($lig_grp_tmp=mysqli_fetch_object($res_grp_tmp)){ $chaine_options_grp_groupe.="\n"; $id_grp_suiv=$lig_grp_tmp->id; } else{ $id_grp_suiv=0; } } else { $chaine_options_grp_groupe.="\n"; } if($temoin_tmp==0){ $id_grp_prec=$lig_grp_tmp->id; } $cpt_grp++; } } // ================================= if($id_grp_prec!=0){echo " | Ensemble préc.";} if($chaine_options_grp_groupe!="") { echo "\n"; echo " | \n"; echo ""; } if($id_grp_suiv!=0){echo " | Ensemble suiv.";} echo " | Index $groupes_de_groupes

"; // Récupérer les infos sur le groupe de groupes courant $tab_grp_groupes=get_tab_grp_groupes($id_grp_groupe, array('classes', 'matieres', 'profs')); echo "
".add_token_field()."

Modifier le $groupe_de_groupes n°$id_grp_groupe : ".$tab_grp_groupes['nom_court']."

Nom court :
Nom complet :
Description :

"; // Lister les groupes associés if(count($tab_grp_groupes['groupes'])>0) { echo "
".add_token_field()."

Les groupes/enseignements suivants sont associés au $groupe_de_groupes :

    "; foreach($tab_grp_groupes['groupes'] as $cpt => $current_group) { echo "
  • "; } echo "

"; } else { echo "

Aucun enseignement/groupe n'est encore associé au $groupe_de_groupes.

"; } // Proposer d'associer de nouveaux groupes echo "

Ajouter des enseignements.

"; /* echo "
";
		print_r($tab_grp_groupes);
		echo "
"; */ // Lister les profs et cpe administrateurs if(count($tab_grp_groupes['admin'])>0) { echo "
".add_token_field()."

Les utilisateurs suivants administrent le $groupe_de_groupes :

    "; foreach($tab_grp_groupes['admin'] as $cpt => $current_user) { echo "
  • "; } echo "

".js_checkbox_change_style('checkbox_change', 'texte_', "y")."
"; } else { echo "

Aucun utilisateur n'administre encore le $groupe_de_groupes.

"; } // Proposer d'associer de nouveaux utilisateurs echo "

Ajouter des utilisateurs autorisés à modifier la liste des élèves des groupes de ce $groupe_de_groupes.

"; echo "

ATTENTION à ne pas modifier simultanément plusieurs formulaires
(seules les modifications du formulaire validé seront prises en compte et les autres perdues).

"; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ elseif(($mode=="ajouter_user")&&(isset($id_grp_groupe))) { // Récupérer les infos sur le groupe de groupes courant $tab_grp_groupes=get_tab_grp_groupes($id_grp_groupe, array('classes', 'matieres', 'profs')); echo " | Index $groupes_de_groupes | ".$tab_grp_groupes['nom_court']."

"; $tab_user_preselectionnes=array(); if(count($tab_grp_groupes['admin'])>0) { foreach($tab_grp_groupes['admin'] as $cpt => $current_user) { $tab_user_preselectionnes[]=$current_user['login']; } } echo "
".add_token_field()."

Ajouter des administrateurs du $groupe_de_groupes n°$id_grp_groupe : ".$tab_grp_groupes['nom_court']."

".liste_checkbox_utilisateurs(array("scolarite", "cpe", "professeur"), $tab_user_preselectionnes)."

".js_checkbox_change_style('checkbox_change', 'texte_', "y")."
"; if((isset($tab_grp_groupes['groupes']))&&(count($tab_grp_groupes['groupes'])>0)) { echo "

Enseignements inscrits dans le $groupe_de_groupes :
"; foreach($tab_grp_groupes['groupes'] as $key => $current_group) { echo " ".$current_group['name']." (".$current_group['classlist_string'].") (".$current_group['profs']['proflist_string'].")
"; } echo "

"; } /* echo "
";
		print_r($tab_grp_groupes);
		echo "
"; */ } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ elseif(($mode=="ajouter_groupes")&&(isset($id_grp_groupe))) { // Récupérer les infos sur le groupe de groupes courant $tab_grp_groupes=get_tab_grp_groupes($id_grp_groupe, array('classes', 'matieres', 'profs')); echo " | Index $groupes_de_groupes | ".$tab_grp_groupes['nom_court'].""; // Choix des classes dans lesquelles sélectionner des groupes if(!isset($tab_id_classe)) { echo "

Ajout de groupes au $groupe_de_groupes n°$id_grp_groupe : ".$tab_grp_groupes['nom_court']."

Choisissez les classes dans lesquelles sélectionner les groupes/enseignements.

".add_token_field()." "; $tmp_tab_classe=array(); $sql="SELECT DISTINCT p.id_classe, c.classe FROM periodes p, classes c WHERE p.id_classe=c.id ORDER BY c.classe"; $res=mysqli_query($GLOBALS["mysqli"], $sql); $cpt=0; while($lig=mysqli_fetch_object($res)) { $tmp_tab_classe['texte'][$cpt]=$lig->classe; $tmp_tab_classe['nom_champ'][$cpt]="tab_id_classe[]"; $tmp_tab_classe['id_champ'][$cpt]="tab_id_classe_".$lig->id_classe; $tmp_tab_classe['valeur'][$cpt]=$lig->id_classe; $cpt++; } $tab_valeurs_preselectionnees=array(); if(count($tab_grp_groupes['groupes'])>0) { foreach($tab_grp_groupes['groupes'] as $cpt => $current_group) { for($loop=0;$loop

"; require("../lib/footer.inc.php"); die(); } //======================================================== // Choix des groupes echo " | Ajouter des groupes d'autres classes

Ajout de groupes au $groupe_de_groupes n°$id_grp_groupe : ".$tab_grp_groupes['nom_court']."

Choisissez les groupes/enseignements.

".add_token_field()." "; $tab_valeurs_preselectionnees=array(); if(count($tab_grp_groupes['groupes'])>0) { foreach($tab_grp_groupes['groupes'] as $cpt => $current_group) { $tab_valeurs_preselectionnees[]=$current_group['id']; } } $cpt=0; $get_groups_for_class_avec_proflist="y"; for($loop=0;$loop

Classe de ".get_nom_classe($tab_id_classe[$loop])."

"; $tmp_tab_grp=get_groups_for_class($tab_id_classe[$loop]); foreach($tmp_tab_grp as $current_group) { echo "
"; $cpt++; } echo " "; } echo "

".js_checkbox_change_style('checkbox_change', 'texte_', "y")."
"; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ else { echo " | Index $groupes_de_groupes

Mode inconnu???

"; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ echo "

NOTES : Les \"$groupes_de_groupes\" sont destinés à permettre à des professeurs de gérer la composition de certains groupes.
Typiquement, des groupes dont la composition change toutes les 3 semaines, comme par exemple des groupes d'aide aux devoirs.
Mettre à jour ces groupes permet d'effectuer les saisies d'absences avec des groupes à jour.
Si les professeurs et AED font la répartition des élèves lors d'une réunion, il peut être commode de leur laisser effectuer la mise à jour directement.

A FAIRE :
- Pouvoir éditer les listes produites en CSV et PDF.

"; require("../lib/footer.inc.php"); ?>