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(); } $msg=""; //GepiAccesRestrAccesAppProfP if($_SESSION['statut']=="professeur") { if(getSettingValue('GepiAccesRestrAccesAppProfP')!="yes") { $msg="Accès interdit au paramétrage des accès aux appréciations/avis pour les parents et élèves."; header("Location: ../accueil.php?msg=".rawurlencode($msg)); die(); } $sql="SELECT 1=1 FROM j_eleves_professeurs WHERE professeur='".$_SESSION['login']."';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0){ $gepi_prof_suivi=getSettingValue('gepi_prof_suivi'); $msg="Vous n'êtes pas ".$gepi_prof_suivi.".
Vous ne devriez donc pas accéder à cette page."; header("Location: ../accueil.php?msg=".rawurlencode($msg)); die(); } } $sql="CREATE TABLE IF NOT EXISTS `matieres_appreciations_acces` ( `id_classe` INT( 11 ) NOT NULL , `statut` VARCHAR( 255 ) NOT NULL , `periode` INT( 11 ) NOT NULL , `date` DATE NOT NULL , `acces` ENUM( 'y', 'n', 'date', 'd' ) NOT NULL ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $creation_table=mysqli_query($GLOBALS["mysqli"], $sql); if((isset($_POST['mode']))&&($_POST['mode']=='liste_eleves')&&(isset($_POST['id_classe']))&&(isset($_POST['periode']))) { check_token(); $sql="SELECT * FROM eleves e, j_eleves_classes jec WHERE e.login=jec.login AND jec.id_classe='".$_POST['id_classe']."' AND jec.periode='".$_POST['periode']."' ORDER BY e.nom,e.prenom;"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele)==0) { echo "Aucun élève dans la classe n°".$_POST['id_classe']."' en période ".$_POST['periode']."???"; } else { $tab_acces=array(); $sql="SELECT * FROM matieres_appreciations_acces_eleve maae, j_eleves_classes jec WHERE maae.login=jec.login AND jec.id_classe='".$_POST['id_classe']."' AND jec.periode=maae.periode AND maae.periode='".$_POST['periode']."' AND maae.acces='y';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { while($lig=mysqli_fetch_object($res)) { $tab_acces[]=$lig->login; } } echo ""; $cpt=0; while($lig_ele=mysqli_fetch_object($res_ele)) { $checked=""; $style=""; if(in_array($lig_ele->login, $tab_acces)) { $checked=" checked"; $style=" style='font-weight:bold;'"; } echo " "; $cpt++; } echo "
Élève Accès
"; } die(); } //debug_var(); if((isset($_POST['mode']))&&($_POST['mode']=='valider_choix_ele')&&(isset($_POST['id_classe']))&&(isset($_POST['periode']))) { check_token(); $sql="SELECT * FROM eleves e, j_eleves_classes jec WHERE e.login=jec.login AND jec.id_classe='".$_POST['id_classe']."' AND jec.periode='".$_POST['periode']."' ORDER BY e.nom,e.prenom;"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele)==0) { $msg.="Aucun élève dans la classe n°".$_POST['id_classe']."' en période ".$_POST['periode']."???
"; } else { $tab_acces=array(); $sql="SELECT * FROM matieres_appreciations_acces_eleve maae, j_eleves_classes jec WHERE maae.login=jec.login AND jec.id_classe='".$_POST['id_classe']."' AND jec.periode=maae.periode AND maae.periode='".$_POST['periode']."';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { while($lig=mysqli_fetch_object($res)) { $tab_acces[$lig->login]=$lig->acces; } } /* echo "
";
		print_r($tab_acces);
		echo "
"; */ $nb_reg=0; while($lig_ele=mysqli_fetch_object($res_ele)) { if(isset($tab_acces[$lig_ele->login])) { unset($acces); if((isset($_POST['acces_'.$lig_ele->id_eleve]))&&($tab_acces[$lig_ele->login]!='y')) { $acces="y"; } elseif((!isset($_POST['acces_'.$lig_ele->id_eleve]))&&($tab_acces[$lig_ele->login]=='y')) { $acces="n"; } if(isset($acces)) { $sql="UPDATE matieres_appreciations_acces_eleve SET acces='".$acces."' WHERE login='".$lig_ele->login."' AND periode='".$_POST['periode']."';"; //echo "$sql
\n"; $update=mysqli_query($GLOBALS["mysqli"], $sql); if(!$update) { $msg.="Erreur lors du passage à $acces de l'accès pour ".$lig_ele->prenom." ".$lig_ele->nom." en période ".$_POST['periode']."
"; } else { $nb_reg++; } } } else { if(isset($_POST['acces_'.$lig_ele->id_eleve])) { $acces="y"; } elseif(!isset($_POST['acces_'.$lig_ele->id_eleve])) { $acces="n"; } $sql="INSERT INTO matieres_appreciations_acces_eleve SET acces='".$acces."', login='".$lig_ele->login."', periode='".$_POST['periode']."';"; //echo "$sql
\n"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert) { $msg.="Erreur lors de l'enregistrement à $acces de l'accès pour ".$lig_ele->prenom." ".$lig_ele->nom." en période ".$_POST['periode']."
"; } else { $nb_reg++; } } } if($nb_reg>0) { $msg.=$nb_reg." enregistrement(s) effectué(s)
"; } } } $javascript_specifique[]="classes/acces_appreciations"; $style_specifique[] = "lib/DHTMLcalendar/calendarstyle"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar"; $javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup"; //include "../lib/periodes.inc.php"; $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Accès aux appréciations"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** echo "

Retour Accueil\n"; if($_SESSION['statut']=="administrateur") { echo " | Index Classes\n"; } echo "

\n"; //debug_var(); if($_SESSION['statut']=="professeur") { $gepi_prof_suivi=getSettingValue('gepi_prof_suivi'); $sql="SELECT 1=1 FROM j_eleves_professeurs WHERE professeur='".$_SESSION['login']."';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0){ echo "

Vous n'êtes pas ".$gepi_prof_suivi.".
Vous ne devriez donc pas accéder à cette page.

\n"; echo "


\n"; require("../lib/footer.inc.php"); exit(); } $sql="SELECT DISTINCT c.* FROM j_eleves_professeurs jep, j_eleves_classes jec, classes c WHERE jep.professeur='".$_SESSION['login']."' AND jep.login=jec.login AND jec.id_classe=c.id AND jep.id_classe=jec.id_classe ORDER BY c.classe;"; } elseif($_SESSION['statut']=="scolarite") { $sql="SELECT DISTINCT c.* FROM j_scol_classes jsc, classes c WHERE jsc.login='".$_SESSION['login']."' AND jsc.id_classe=c.id ORDER BY c.classe;"; } elseif($_SESSION['statut']=="administrateur") { $sql="SELECT DISTINCT c.* FROM classes c ORDER BY c.classe;"; } $res_classe=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_classe)==0) { echo "

Vous n'avez accès à aucune classe.

\n"; echo "


\n"; require("../lib/footer.inc.php"); exit(); } if(isset($_POST['choix_date_valider2'])) { check_token(false); $periode2=isset($_POST['periode2']) ? $_POST['periode2'] : NULL; $choix_date2=isset($_POST['choix_date2']) ? $_POST['choix_date2'] : NULL; $poursuivre="y"; if($choix_date2=='') { $poursuivre="n"; //echo "\n"; echo "Date saisie invalide"; } elseif(!my_ereg("[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}",$choix_date2)) { $poursuivre="n"; echo "Date saisie invalide"; } else { $tabdate=explode("/",$choix_date2); $jour=$tabdate[0]; $mois=$tabdate[1]; $annee=$tabdate[2]; if(!checkdate($mois,$jour,$annee)) { $poursuivre="n"; echo "Date saisie invalide"; } } if($poursuivre=="y") { if(($periode2!=NULL)&&($choix_date2!=NULL)) { $tabdate=explode("/",$choix_date2); $mysql_date=$tabdate[2]."-".$tabdate[1]."-".$tabdate[0]; while ($lig=mysqli_fetch_object($res_classe)) { $sql2="UPDATE matieres_appreciations_acces SET acces='date', date='$mysql_date' WHERE id_classe='$lig->id' AND periode='$periode2';"; //echo "$sql2
"; $update=mysqli_query($GLOBALS["mysqli"], $sql2); } } } // On refait la requête de liste des classes $res_classe=mysqli_query($GLOBALS["mysqli"], $sql); } elseif(isset($_POST['modif_manuelle_periode'])) { check_token(false); $periode=isset($_POST['periode']) ? $_POST['periode'] : NULL; if(mb_strlen(preg_replace('/[0-9]/','',$periode))!=0) {$periode=NULL;} if($periode=='') {$periode=NULL;} $acces=isset($_POST['acces']) ? $_POST['acces'] : NULL; if(($acces!='y')&&($acces!='n')) {$acces=NULL;} if(($periode!=NULL)&&($acces!=NULL)) { while ($lig=mysqli_fetch_object($res_classe)) { $sql2="UPDATE matieres_appreciations_acces SET acces='$acces' WHERE id_classe='$lig->id' AND periode='$periode';"; //echo "$sql2
"; $update=mysqli_query($GLOBALS["mysqli"], $sql2); } } // On refait la requête de liste des classes $res_classe=mysqli_query($GLOBALS["mysqli"], $sql); } elseif(isset($_POST['modif_manuelle_individuelle_periode'])) { check_token(false); $periode=isset($_POST['periode']) ? $_POST['periode'] : NULL; if(mb_strlen(preg_replace('/[0-9]/','',$periode))!=0) {$periode=NULL;} if($periode=='') {$periode=NULL;} $acces=isset($_POST['acces']) ? $_POST['acces'] : NULL; if(($acces!='y')&&($acces!='n')) {$acces=NULL;} if(($periode!=NULL)&&($acces!=NULL)) { while ($lig=mysqli_fetch_object($res_classe)) { $id_classe=$lig->id; $tab_ele=array(); $sql2="SELECT DISTINCT login FROM j_eleves_classes jec WHERE jec.id_classe='".$id_classe."' AND jec.periode='$periode';"; //echo "$sql
\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql2); if(mysqli_num_rows($res)>0) { while($lig=mysqli_fetch_object($res)) { $tab_ele[]=$lig->login; } } $sql2="DELETE FROM matieres_appreciations_acces_eleve WHERE login IN (SELECT login FROM j_eleves_classes WHERE id_classe='".$id_classe."' AND periode='$periode') AND periode='$periode';"; //echo "$sql
\n"; $del=mysqli_query($GLOBALS["mysqli"], $sql2); $nb_err=0; for($loop=0;$loop\n"; $insert=mysqli_query($GLOBALS["mysqli"], $sql2); if(!$insert) { $nb_err++; } } if($nb_err>0) { $msg.="Il s'est produit $nb_err erreur(s)
"; } } } // On refait la requête de liste des classes $res_classe=mysqli_query($GLOBALS["mysqli"], $sql); } $tab_classe=array(); $cpt=0; $max_per=0; while($lig=mysqli_fetch_object($res_classe)){ $sql="SELECT MAX(num_periode) AS max_per FROM periodes WHERE id_classe='$lig->id';"; $res_per=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_per)!=0) { $tab_classe[$cpt]=array(); $tab_classe[$cpt]['id']=$lig->id; $tab_classe[$cpt]['classe']=$lig->classe; $tab_classe[$cpt]['suivi_par']=$lig->suivi_par; $lig_per=mysqli_fetch_object($res_per); if($lig_per->max_per>$max_per) {$max_per=$lig_per->max_per;} $cpt++; } } $acces_app_ele_resp=getSettingValue('acces_app_ele_resp'); if($acces_app_ele_resp=="") {$acces_app_ele_resp='manuel';saveSetting('acces_app_ele_resp','manuel');} $delais_apres_cloture=getSettingValue('delais_apres_cloture'); echo "

Vous pouvez définir ici quand les responsables et les élèves peuvent accéder dans Gepi aux appréciations des professeurs et avis du conseil de classe.
Il est souvent apprécié de pouvoir interdire l'accès aux élèves et responsables avant que le conseil de classe se soit déroulé.
Cet accès est conditionné par l'existence des comptes responsables et élèves.

\n"; echo "
\n"; if($acces_app_ele_resp=='manuel') { echo "

Cliquez sur la clef \"Manuel\" pour donner ou supprimer l'accès aux appréciations.

\n"; } elseif($acces_app_ele_resp=='manuel_individuel') { echo "

Cliquez sur la clef \"Manuel pour donner ou supprimer l'accès aux appréciations.

\n"; echo "

Cliquez sur l'icone \"Manuel pour choisir pour quels élèves l'accès aux appréciations est ouvert.

\n"; } elseif($acces_app_ele_resp=='date') { echo "

Cliquez sur le calendrier \"Choix pour donner ou supprimer l'accès aux appréciations.

\n"; } else { if($_SESSION['statut']=='scolarite') { echo "

L'accès est automatiquement ouvert $delais_apres_cloture jours après la clôture de la période.

\n"; } else { echo "

L'accès est automatiquement ouvert $delais_apres_cloture jours après la clôture de la période.

\n"; } } /* echo "

L'ouverture/fermeture de l'accès aux appréciations peut se faire selon trois critères :

\n"; echo "