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(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } if($_SESSION['statut']=='professeur') { if(!getSettingAOui('autoriser_valider_correction_app_pp')) { header("Location: ../accueil.php?msg=Accès non autorisé"); die(); } if(!is_pp($_SESSION['login'])) { // tentative_intrusion() à mettre header("Location: ../accueil.php?msg=Accès non autorisé"); die(); } $sql_correction_app="SELECT DISTINCT c.id, c.classe FROM classes c, j_eleves_classes jec, j_eleves_professeurs jep, matieres_app_corrections mac WHERE c.id=jec.id_classe AND jec.login=mac.login AND jep.login=mac.login AND jep.professeur='".$_SESSION['login']."' ORDER BY classe;"; $res=mysqli_query($GLOBALS["mysqli"], $sql_correction_app); if(mysqli_num_rows($res)==0) { header("Location: ../accueil.php?msg=Aucune proposition de correction n'est formulée pour une de vos classes"); die(); } } $msg=""; $tab_id_classe=isset($_POST['tab_id_classe']) ? $_POST['tab_id_classe'] : NULL; if(isset($_POST['action_corrections'])) { check_token(); $enregistrement=isset($_POST['enregistrement']) ? $_POST['enregistrement'] : array(); $action=isset($_POST['action']) ? $_POST['action'] : array(); $tab_actions_valides=array('en_attente', 'valider', 'supprimer'); $nb_reg=0; $texte_email=array(); //$reimprimer_bulletins=""; $reimprimer_bulletins=array(); $tab_periode_num=array(); $tab_liste_id_groupe=array(); $tab_proflist_string=array(); for($i=0;$i".print_r($current_group).""; if(isset($current_group["profs"]['proflist_string'])) { $tab_proflist_string[$current_id_groupe]=$current_group["profs"]['proflist_string']; //echo "\$tab_proflist_string[$current_id_groupe]=".$tab_proflist_string[$current_id_groupe]."
"; } if($current_login_ele=='') { // Appréciation de groupe $poursuivre="y"; if($_SESSION['statut']=='professeur') { $poursuivre="n"; for($loop=0;$loop"; } } if($poursuivre=="y") { if((mb_strlen(preg_replace('/[0-9]/','',$current_id_groupe))==0)&& (mb_strlen(preg_replace('/[0-9]/','',$current_periode))==0)) { if ((isset($action[$i]))&&(in_array($action[$i],$tab_actions_valides))) { if (isset($NON_PROTECT["appreciation".$i])) { $app = traitement_magic_quotes(corriger_caracteres($NON_PROTECT["appreciation".$i])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $app=suppression_sauts_de_lignes_surnumeraires($app); if($action[$i]=='supprimer') { $sql="DELETE FROM matieres_app_corrections WHERE (login='' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if($del) { $msg.="Suppression de l'enregistrement temporaire $enregistrement[$i].
"; //$nb_reg++; // Envoyer un mail... problème... il serait bien de n'envoyer qu'un seul mail par destinataire, plutôt que un mail par correction if(!isset($texte_email[$current_id_groupe])) {$texte_email[$current_id_groupe]="";} //$texte_email[$current_id_groupe].="Votre proposition de correction pour $enregistrement[$i] a été refusée/supprimée.\n"; $texte_email[$current_id_groupe].="Votre proposition de correction pour l'appréciation de groupe en ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].") sur la période $current_periode a été refusée/supprimée.\n"; } else { $msg.="Erreur lors de la suppression de l'enregistrement temporaire $enregistrement[$i].
"; } } elseif($action[$i]=='valider') { //$sql="UPDATE matieres_appreciations SET appreciation='$app' WHERE (login='$current_login_ele' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $sql="DELETE FROM matieres_appreciations_grp WHERE (id_groupe='$current_id_groupe' AND periode='$current_periode');"; $menage=mysqli_query($GLOBALS["mysqli"], $sql); $sql="INSERT INTO matieres_appreciations_grp SET id_groupe='$current_id_groupe', periode='$current_periode', appreciation='$app';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if($insert) { $sql="DELETE FROM matieres_app_corrections WHERE (login='' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if($del) { $nb_reg++; $msg.="Suppression de l'enregistrement temporaire $enregistrement[$i].
"; // Envoyer un mail... problème... il serait bien de n'envoyer qu'un seul mail par destinataire, plutôt que un mail par correction if(!isset($texte_email[$current_id_groupe])) {$texte_email[$current_id_groupe]="";} $texte_email[$current_id_groupe].="Votre proposition de correction pour l'appreciation de groupe en ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].") sur la période $current_periode a été validée.\n"; /* if(!in_array($current_periode,$tab_periode_num)) {$tab_periode_num[]=$current_periode;} //$reimprimer_bulletins.="\n"; if(!isset($reimprimer_bulletins[$current_periode])) {$reimprimer_bulletins[$current_periode]="|";} $reimprimer_bulletins[$current_periode].="$current_login_ele|"; */ } else { $msg.="Erreur lors de la suppression de l'enregistrement temporaire $enregistrement[$i].
"; } } else { $msg.="Erreur lors de la mise à jour de l'enregistrement $enregistrement[$i] sur le bulletin.
"; } } if(!in_array($current_id_groupe,$tab_liste_id_groupe)) { $tab_liste_id_groupe[]=$current_id_groupe; } } else { $msg.="Action $action[$i] invalide.
"; } } } else { $msg.="Des caractères invalides sont proposés pour $enregistrement[$i].
"; } } } else { $current_nom_prenom_eleve=get_nom_prenom_eleve($current_login_ele); $poursuivre="y"; if(($_SESSION['statut']=='professeur')&&(!is_pp($_SESSION['login'], "", $current_login_ele))) { $poursuivre="n"; $msg.="Vous n'êtes pas ".getSettingValue('gepi_prof_suivi')." de ".$current_nom_prenom_eleve."
"; } if($poursuivre=="y") { if((mb_strlen(preg_replace('/[A-Za-z0-9._-]/','',$current_login_ele))==0)&& (mb_strlen(preg_replace('/[0-9]/','',$current_id_groupe))==0)&& (mb_strlen(preg_replace('/[0-9]/','',$current_periode))==0)) { if ((isset($action[$i]))&&(in_array($action[$i],$tab_actions_valides))) { if (isset($NON_PROTECT["appreciation".$i])) { $app = traitement_magic_quotes(corriger_caracteres($NON_PROTECT["appreciation".$i])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $app=suppression_sauts_de_lignes_surnumeraires($app); if($action[$i]=='supprimer') { $sql="DELETE FROM matieres_app_corrections WHERE (login='$current_login_ele' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if($del) { $msg.="Suppression de l'enregistrement temporaire $enregistrement[$i].
"; //$nb_reg++; // Envoyer un mail... problème... il serait bien de n'envoyer qu'un seul mail par destinataire, plutôt que un mail par correction if(!isset($texte_email[$current_id_groupe])) {$texte_email[$current_id_groupe]="";} //$texte_email[$current_id_groupe].="Votre proposition de correction pour $enregistrement[$i] a été refusée/supprimée.\n"; $texte_email[$current_id_groupe].="Votre proposition de correction pour ".$current_nom_prenom_eleve." en ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].") sur la période $current_periode a été refusée/supprimée.\n"; } else { $msg.="Erreur lors de la suppression de l'enregistrement temporaire $enregistrement[$i].
"; } } elseif($action[$i]=='valider') { //$sql="UPDATE matieres_appreciations SET appreciation='$app' WHERE (login='$current_login_ele' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $sql="DELETE FROM matieres_appreciations WHERE (login='$current_login_ele' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $menage=mysqli_query($GLOBALS["mysqli"], $sql); $sql="INSERT INTO matieres_appreciations SET login='$current_login_ele', id_groupe='$current_id_groupe', periode='$current_periode', appreciation='$app';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if($insert) { $sql="DELETE FROM matieres_app_corrections WHERE (login='$current_login_ele' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if($del) { $nb_reg++; $msg.="Suppression de l'enregistrement temporaire $enregistrement[$i].
"; // Envoyer un mail... problème... il serait bien de n'envoyer qu'un seul mail par destinataire, plutôt que un mail par correction if(!isset($texte_email[$current_id_groupe])) {$texte_email[$current_id_groupe]="";} $texte_email[$current_id_groupe].="Votre proposition de correction pour ".$current_nom_prenom_eleve." en ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].") sur la période $current_periode a été validée.\n"; if(!in_array($current_periode,$tab_periode_num)) {$tab_periode_num[]=$current_periode;} //$reimprimer_bulletins.="\n"; if(!isset($reimprimer_bulletins[$current_periode])) {$reimprimer_bulletins[$current_periode]="|";} $reimprimer_bulletins[$current_periode].="$current_login_ele|"; } else { $msg.="Erreur lors de la suppression de l'enregistrement temporaire $enregistrement[$i].
"; } } else { $msg.="Erreur lors de la mise à jour de l'enregistrement $enregistrement[$i] sur le bulletin.
"; } } if(!in_array($current_id_groupe,$tab_liste_id_groupe)) { $tab_liste_id_groupe[]=$current_id_groupe; } } else { $msg.="Action $action[$i] invalide.
"; } } } else { $msg.="Des caractères invalides sont proposés pour $enregistrement[$i].
"; } } } } if(($nb_reg>0)||(count($texte_email)>0)) { if($nb_reg>0) {$msg.="$nb_reg enregistrement(s) effectué(s).
";} $envoi_mail_actif=getSettingValue('envoi_mail_actif'); if(($envoi_mail_actif!='n')&&($envoi_mail_actif!='y')) { $envoi_mail_actif='y'; // Passer à 'n' pour faire des tests hors ligne... la phase d'envoi de mail peut sinon ensabler. } if($envoi_mail_actif=='y') { $email_reply=""; $tab_email_reply=array(); //$sql="select nom, prenom, civilite, email from utilisateurs where login = '".$_SESSION['login']."';"; $sql="(select nom, prenom, civilite, email from utilisateurs where login = '".$_SESSION['login']."')"; $sql.=" UNION (select nom, prenom, civilite, email from utilisateurs where statut = 'secours' AND etat='actif')"; for($loop=0;$loop"; $req=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($req)>0) { while($lig_u=mysqli_fetch_object($req)) { if(!in_array($lig_u->email, $tab_email_reply)) { if($email_reply!="") {$email_reply.=", ";} $email_reply.=$lig_u->email; $tab_email_reply[]=$lig_u->email; } } } foreach($texte_email as $id_groupe => $texte) { if($texte!='') { $email_destinataires=""; // Recherche des profs du groupe $sql="SELECT DISTINCT u.email FROM utilisateurs u, j_groupes_professeurs jgp WHERE jgp.id_groupe='$id_groupe' AND jgp.login=u.login AND u.email!='';"; //echo "$sql
"; $req=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($req)>0) { $lig_u=mysqli_fetch_object($req); $email_destinataires.=$lig_u->email; $tab_param_mail['destinataire'][]=$lig_u->email; while($lig_u=mysqli_fetch_object($req)) { $email_destinataires.=",".$lig_u->email; $tab_param_mail['destinataire'][]=$lig_u->email; } } if($email_destinataires!='') { $sujet_mail="Groupe n°$id_groupe: Réponse à votre demande de correction"; $ajout_header=""; if($email_reply!="") { $ajout_header.="Cc: $email_reply\r\n"; $ajout_header.="Reply-to: $email_reply\r\n"; $tab_param_mail['cc']=$email_reply; $tab_param_mail['replyto']=$email_reply; } $salutation=(date("H")>=18 OR date("H")<=5) ? "Bonsoir" : "Bonjour"; if(isset($tab_proflist_string[$id_groupe])) { $salutation.=" ".$tab_proflist_string[$id_groupe]; } $texte=$salutation.",\n\n".$texte."\nCordialement.\n-- \n".civ_nom_prenom($_SESSION['login']); $envoi = envoi_mail($sujet_mail, $texte, $email_destinataires, $ajout_header, "plain", $tab_param_mail); } } } } } } //**************** EN-TETE ***************** $titre_page = "Validation des corrections"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); ?>

Retour Accueil \n"; /* if($_SESSION['statut']=='scolarite') { $sql="SELECT DISTINCT c.id, c.classe FROM classes c, j_eleves_classes jec, matieres_app_corrections mac, j_scol_classes jsc WHERE c.id=jec.id_classe AND jec.login=mac.login AND jec.periode=mac.periode AND jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe;"; } else { $sql="SELECT DISTINCT c.id, c.classe FROM classes c, j_eleves_classes jec, matieres_app_corrections mac WHERE c.id=jec.id_classe AND jec.login=mac.login AND jec.periode=mac.periode ORDER BY classe;"; } */ if($_SESSION['statut']=='scolarite') { //$sql="SELECT DISTINCT c.id, c.classe FROM classes c, j_eleves_classes jec, matieres_app_corrections mac, j_scol_classes jsc WHERE c.id=jec.id_classe AND jec.login=mac.login AND jec.periode=mac.periode AND jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe;"; $sql="SELECT DISTINCT c.id, c.classe FROM classes c, j_groupes_classes jgc, matieres_app_corrections mac, j_scol_classes jsc WHERE c.id=jgc.id_classe AND jgc.id_groupe=mac.id_groupe AND jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe;"; } elseif($_SESSION['statut']=='professeur') { $sql="SELECT DISTINCT c.id, c.classe FROM classes c, j_eleves_classes jec, j_eleves_professeurs jep, matieres_app_corrections mac WHERE c.id=jec.id_classe AND jec.login=mac.login AND jep.login=mac.login AND jep.professeur='".$_SESSION['login']."' ORDER BY classe;"; } else { $sql="SELECT DISTINCT c.id, c.classe FROM matieres_app_corrections mac, j_groupes_classes jgc, classes c WHERE mac.id_groupe=jgc.id_groupe AND jgc.id_classe=c.id ORDER BY classe;"; } //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); $nb_classes=mysqli_num_rows($res); if($nb_classes==0) { echo "

Aucune proposition de correction ne requiert votre attention.

\n"; echo "


\n"; require("../lib/footer.inc.php"); die(); } echo "
\n"; //echo add_token_field(); echo "

Veuillez choisir la ou les classes pour lesquelles vous souhaitez consulter/valider les propositions de corrections.

\n"; $cpt=0; $nb_class_par_colonne=round($nb_classes/3); //echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "
\n"; while($lig_clas=mysqli_fetch_object($res)) { if(($cpt>0)&&(round($cpt/$nb_class_par_colonne)==$cpt/$nb_class_par_colonne)){ echo "\n"; } echo ""; echo "
\n"; $cpt++; } echo "
\n"; echo "

Tout cocher / Tout décocher

\n"; echo "

\n"; echo "
\n"; echo "\n"; } else { echo " | Choisir d'autres classes

\n"; //if((isset($reimprimer_bulletins))&&($reimprimer_bulletins!="")) { if((isset($reimprimer_bulletins))&&(count($reimprimer_bulletins)>0)) { echo "
\n"; echo "
\n"; //echo add_token_field(); echo "

ATTENTION : Des modifications ont été effectuées.
Il faut sans doute réimprimer les bulletins correspondants.

\n"; for($i=0;$i\n"; } for($i=0;$i\n"; } //echo $reimprimer_bulletins; foreach($reimprimer_bulletins as $periode => $liste_ele) { echo "\n"; } echo "\n"; echo "

\n"; echo "\n"; echo "
\n"; } $compteur=0; echo "
\n"; echo add_token_field(); echo "\n"; $nb_app_proposees_en_attente=0; $tab_cpt_classe=array(); $classe_prec=""; for($i=0;$i0) { $tab_cpt_classe[$tab_id_classe[$i-1]][]=$compteur; } } $classe=get_class_from_id($tab_id_classe[$i]); echo "

".$classe."

\n"; echo "\n"; echo "
\n"; // Groupes associés à la classe $sql="SELECT DISTINCT jgc.id_groupe FROM j_groupes_classes jgc, matieres_app_corrections mac WHERE jgc.id_classe='$tab_id_classe[$i]' AND jgc.id_groupe=mac.id_groupe;"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); $nb_grp=mysqli_num_rows($res); if($nb_grp==0) { echo "

Aucun enseignement associé à cette classe ne présente (plus) de proposition de correction.

\n"; } else { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; while($lig=mysqli_fetch_object($res)) { $current_group=get_group($lig->id_groupe); // Elèves avec correction associés au groupe //$sql="SELECT DISTINCT mac.*, ma.appreciation AS old_app FROM matieres_app_corrections mac, matieres_appreciations ma, j_eleves_classes jec WHERE jec.id_classe='$tab_id_classe[$i]' AND jec.periode=mac.periode AND jec.login=mac.login AND mac.id_groupe='$lig->id_groupe' AND mac.periode=ma.periode AND mac.id_groupe=ma.id_groupe AND mac.login=ma.login ORDER BY ma.login;"; // On ne récupérait pas d'élèves si le prof n'avait pas rempli d'appréciation pour la période (ça ne fonctionnait que pour une correction, pas pour une proposition de première saisie après la date de verrouillage) $sql="SELECT DISTINCT mac.* FROM matieres_app_corrections mac WHERE mac.id_groupe='$lig->id_groupe' AND mac.login='';"; //echo "$sql
\n"; $res_grp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_grp)>0) { $lig_grp=mysqli_fetch_object($res_grp); $alt=$alt*(-1); echo "\n"; $liste_profs=""; foreach($current_group["profs"]["list"] as $key => $prof_login) { if($liste_profs!="") {$liste_profs.=", ";} $liste_profs.=civ_nom_prenom($prof_login); } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $compteur++; $nb_app_proposees_en_attente++; } $sql="SELECT DISTINCT mac.* FROM matieres_app_corrections mac, j_eleves_classes jec WHERE jec.id_classe='$tab_id_classe[$i]' AND jec.periode=mac.periode AND jec.login=mac.login AND mac.id_groupe='$lig->id_groupe' ORDER BY mac.login;"; //echo "$sql
\n"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); $nb_eleves=mysqli_num_rows($res_ele); $cpt=0; while($lig_ele=mysqli_fetch_object($res_ele)) { $alt=$alt*(-1); echo "\n"; if($cpt==0) { $liste_profs=""; foreach($current_group["profs"]["list"] as $key => $prof_login) { if($liste_profs!="") {$liste_profs.=", ";} $liste_profs.=civ_nom_prenom($prof_login); } echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $cpt++; $compteur++; $nb_app_proposees_en_attente++; } } echo "
EnseignementElèvePériodePropositionAction
En attente
Tout laisser en attente
Valider
Tout valider
Supprimer
Tout supprimer
".$current_group['name']."
(".$current_group["description"]." en ".$current_group["classlist_string"].")
".$liste_profs."
Groupe$lig_grp->periode"; echo "
\n"; echo "Appréciation enregistrée : "; //echo nl2br($lig_ele->old_app); $sql="SELECT * FROM matieres_appreciations_grp WHERE periode='$lig_grp->periode' AND id_groupe='$lig_grp->id_groupe';"; $res_old_app=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_old_app)>0) { $lig_old=mysqli_fetch_object($res_old_app); echo nl2br($lig_old->appreciation); } else { echo "Aucune appréciation n'a été enregistrée avant la proposition de correction.\n"; } echo "
\n"; echo "
\n"; echo "Correction proposée : "; echo "\n"; echo "
\n"; echo "
".$current_group['name']."
(".$current_group["description"]." en ".$current_group["classlist_string"].")
".$liste_profs."
".get_nom_prenom_eleve($lig_ele->login)."$lig_ele->periode"; echo "
\n"; echo "Appréciation enregistrée : "; //echo nl2br($lig_ele->old_app); $sql="SELECT * FROM matieres_appreciations WHERE periode='$lig_ele->periode' AND id_groupe='$lig_ele->id_groupe' AND login='$lig_ele->login';"; $res_old_app=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_old_app)>0) { $lig_old=mysqli_fetch_object($res_old_app); echo nl2br($lig_old->appreciation); } else { echo "Aucune appréciation n'a été enregistrée avant la proposition de correction.\n"; } echo "
\n"; echo "
\n"; echo "Correction proposée : "; echo "\n"; echo "
\n"; echo "
\n"; } /* echo "
";
		print_r($tab_cpt_classe);
		echo "
"; */ echo "
\n"; } $tab_cpt_classe[$tab_id_classe[$i-1]][]=$compteur; /* echo "
\$tab_cpt_classe:
";
	print_r($tab_cpt_classe);
	echo "
"; echo ""; */ if($nb_app_proposees_en_attente>0) { //$chaine_js="var tab_classe_indice=new Array();\n"; $chaine_js=""; foreach($tab_cpt_classe as $id_classe => $indice) { //$chaine_js.="var tab_classe_indice[$id_classe][0]=".$indice[0].";\n"; //$chaine_js.="var tab_classe_indice[$id_classe][1]=".$indice[1].";\n"; $chaine_js.="var tab_classe_indice_$id_classe=new Array(".$indice[0].",".$indice[1].");\n"; } echo "

Tout valider / Tout supprimer / Tout remettre en attente

\n"; echo "

\n"; echo "\n"; echo "\n"; } } echo "


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