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
";
}
}
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
";
$cpt=0;
for($loop=0;$loop
";
}
$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 "
Choisissez :
Modifier un $groupe_de_groupes (associé à $classe) existant :
Modifier un $groupe_de_groupes (associé à d'autres classes) existant :
Modifier un $groupe_de_groupes existant sans groupe/enseignement associé :
Aucun enseignement/groupe n'est encore associé au $groupe_de_groupes.
"; } // Proposer d'associer de nouveaux groupes echo " "; /* echo ""; print_r($tab_grp_groupes); echo ""; */ // Lister les profs et cpe administrateurs if(count($tab_grp_groupes['admin'])>0) { echo " "; } else { echo "
Aucun utilisateur n'administre encore le $groupe_de_groupes.
"; } // Proposer d'associer de nouveaux utilisateurs echo " "; echo "ATTENTION à ne pas modifier simultanément plusieurs formulaires
(seules les modifications du formulaire validé seront prises en compte et les autres perdues).
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 "
"; 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.
"; require("../lib/footer.inc.php"); die(); } //======================================================== // Choix des groupes echo " | Ajouter des groupes d'autres classesAjout de groupes au $groupe_de_groupes n°$id_grp_groupe : ".$tab_grp_groupes['nom_court']."
Choisissez les groupes/enseignements.
"; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ else { echo " | Index $groupes_de_groupesMode 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.