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 : INSERT INTO droits VALUES ( '/mod_discipline/definir_autres_sanctions.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Discipline: Définir types sanctions', '');
// maj : $tab_req[] = "INSERT INTO droits VALUES ( '/mod_discipline/definir_autres_sanctions.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Discipline: Définir types sanctions', '');;";
if (!checkAccess()) {
header("Location: ../logout.php?auto=1");
die();
}
if(mb_strtolower(mb_substr(getSettingValue('active_mod_discipline'),0,1))!='y') {
$mess=rawurlencode("Vous tentez d accéder au module Discipline qui est désactivé !");
tentative_intrusion(1, "Tentative d'accès au module Discipline qui est désactivé.");
header("Location: ../accueil.php?msg=$mess");
die();
}
require('sanctions_func_lib.php');
$acces_ok="n";
if(($_SESSION['statut']=='administrateur')||
(($_SESSION['statut']=='cpe')&&(getSettingAOui('GepiDiscDefinirSanctionsCpe')))||
(($_SESSION['statut']=='scolarite')&&(getSettingAOui('GepiDiscDefinirSanctionsScol')))) {
$acces_ok="y";
}
else {
$msg="Vous n'avez pas le droit de définir de nouvelles ".$mod_disc_terme_sanction."s.";
header("Location: ./index.php?msg=$msg");
die();
}
$reordonner="n";
$sql="SELECT * FROM s_types_sanctions2 WHERE rang='0';";
//echo "$sql
";
$test=mysqli_query($mysqli, $sql);
if(mysqli_num_rows($test)>0) {
$reordonner="y";
}
//echo "reordonner=$reordonner
";
$sql="SELECT COUNT(rang) AS nbr_doublon, id_nature FROM s_types_sanctions2 GROUP BY rang HAVING COUNT(*)>1;";
//echo "$sql
";
$test=mysqli_query($mysqli, $sql);
if(mysqli_num_rows($test)>0) {
$reordonner="y";
}
//echo "reordonner=$reordonner
";
$sql="SELECT MAX(rang) AS max_rang FROM s_types_sanctions2;";
//echo "$sql
";
$test1=mysqli_query($mysqli, $sql);
$max_rang="";
if(mysqli_num_rows($test1)>0) {
$lig_maxrang=mysqli_fetch_object($test1);
$max_rang=$lig_maxrang->max_rang;
}
$sql="SELECT 1=1 FROM s_types_sanctions2;";
//echo "$sql
";
$test2=mysqli_query($mysqli, $sql);
//echo mysqli_num_rows($test2)."
";
if($max_rang!=mysqli_num_rows($test2)) {
$reordonner="y";
}
//echo "reordonner=$reordonner
";
if($reordonner=="y") {
$cpt_sts=1;
$sql="SELECT * FROM s_types_sanctions2 ORDER BY rang, type, nature;";
//echo "$sql
";
$res_sts=mysqli_query($mysqli, $sql);
while($lig_sts=mysqli_fetch_object($res_sts)) {
$sql="UPDATE s_types_sanctions2 SET rang='".$cpt_sts."' WHERE id_nature='".$lig_sts->id_nature."';";
//echo "$sql
";
$update=mysqli_query($mysqli, $sql);
$cpt_sts++;
}
}
$msg="";
//debug_var();
$suppr_nature=isset($_POST['suppr_nature']) ? $_POST['suppr_nature'] : NULL;
$nature=isset($_POST['nature']) ? $_POST['nature'] : NULL;
$type=isset($_POST['type']) ? $_POST['type'] : NULL;
$cpt=isset($_POST['cpt']) ? $_POST['cpt'] : 0;
if((isset($_GET['move']))&&(isset($_GET['id_nature']))) {
check_token();
$tab_sts=array();
$sql="SELECT * FROM s_types_sanctions2 ORDER BY rang, type, nature;";
$res_sts=mysqli_query($mysqli, $sql);
$loop=0;
$loop_modif="";
while($lig_sts=mysqli_fetch_object($res_sts)) {
$tab_sts[$loop]['id_nature']=$lig_sts->id_nature;
$tab_sts[$loop]['rang']=$lig_sts->rang;
$tab_sts[$loop]['nature']=$lig_sts->nature;
if($lig_sts->id_nature==$_GET['id_nature']) {
$loop_modif=$loop;
}
$loop++;
}
/*
echo "
";
print_r($tab_sts);
echo "
";
echo "\$loop_modif=$loop_modif
";
*/
if(($_GET['move']=="up")&&($loop_modif>0)&&($tab_sts[$loop_modif]['rang']>1)) {
$sql="UPDATE s_types_sanctions2 SET rang='".($tab_sts[$loop_modif]['rang']-1)."' WHERE id_nature='".$tab_sts[$loop_modif]['id_nature']."';";
//echo "$sql
";
$update=mysqli_query($mysqli, $sql);
$sql="UPDATE s_types_sanctions2 SET rang='".($tab_sts[$loop_modif]['rang'])."' WHERE id_nature='".$tab_sts[$loop_modif-1]['id_nature']."';";
//echo "$sql
";
$update=mysqli_query($mysqli, $sql);
}
elseif(($_GET['move']=="down")&&($loop_modif";
$update=mysqli_query($mysqli, $sql);
$sql="UPDATE s_types_sanctions2 SET rang='".($tab_sts[$loop_modif]['rang'])."' WHERE id_nature='".$tab_sts[$loop_modif+1]['id_nature']."';";
//echo "$sql
";
$update=mysqli_query($mysqli, $sql);
}
}
if(isset($suppr_nature)) {
check_token();
for($i=0;$i<$cpt;$i++) {
if(isset($suppr_nature[$i])) {
//$sql="SELECT 1=1 FROM s_autres_sanctions WHERE id_nature='$suppr_nature[$i]';";
$sql="SELECT 1=1 FROM s_sanctions WHERE id_nature_sanction='$suppr_nature[$i]';";
//echo "$sql
";
$test=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
$msg.="Il n'est pas possible de supprimer le type de ".$mod_disc_terme_sanction." n°".$suppr_nature[$i]." parce qu'il est associé à une ou des ".$mod_disc_terme_sanction."s déjà saisies pour un ou des élèves.
\n";
}
else {
$sql="DELETE FROM s_types_sanctions2 WHERE id_nature='$suppr_nature[$i]';";
$suppr=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$suppr) {
$msg.="ERREUR lors de la suppression de la nature n°".$suppr_nature[$i].".
\n";
}
else {
$msg.="Suppression de la nature n°".$suppr_nature[$i].".
\n";
}
}
}
}
}
if ($_SESSION['rne']!='') {
$rne=$_SESSION['rne']."/";
} else {
$rne='';
}
$acces_upload_modele_ooo=false;
if(getSettingAOui("active_mod_ooo")) {
if(($_SESSION['statut']=="administrateur")||
(($_SESSION['statut']=="cpe")&&(getSettingAOui("OOoUploadCpeDiscipline")))||
(($_SESSION['statut']=="scolarite")&&(getSettingAOui("OOoUploadScolDiscipline")))) {
$acces_upload_modele_ooo=true;
}
}
if($acces_upload_modele_ooo) {
if((isset($_GET['suppr_modele_odt']))&&(preg_match("/^[0-9]{1,}$/", $_GET['suppr_modele_odt']))) {
check_token();
if(file_exists("../mod_ooo/mes_modeles/".$rne."discipline_sanction_".$_GET['suppr_modele_odt'].".odt")) {
if(unlink("../mod_ooo/mes_modeles/".$rne."discipline_sanction_".$_GET['suppr_modele_odt'].".odt")) {
$msg.="Modèle spécifique n°".$_GET['suppr_modele_odt']." supprimé.
";
}
else {
$msg.="Erreur lors de la suppression du modèle spécifique n°".$_GET['suppr_modele_odt'].".
";
}
}
else {
$msg.="Modèle spécifique n°".$_GET['suppr_modele_odt']." non trouvé.
";
}
}
if(isset($_FILES['modele_odt'])) {
check_token();
$modele_odt=$_FILES['modele_odt'];
/*
echo "";
print_r($modele_odt);
echo "
";
*/
$nb_fichiers_mis_en_place=0;
if((isset($modele_odt['name']))&&(is_array($modele_odt['name']))) {
foreach($modele_odt['name'] as $id_nature_sanction => $nom_fichier) {
$monfichiername=$modele_odt['name'][$id_nature_sanction];
$monfichiertype=$modele_odt['type'][$id_nature_sanction];
$monfichiererror=$modele_odt['error'][$id_nature_sanction];
$monfichiersize=$modele_odt['size'][$id_nature_sanction];
$monfichiertmp_name=$modele_odt['tmp_name'][$id_nature_sanction];
if($monfichiererror==0) {
$poursuivre="y";
if(file_exists("../mod_ooo/mes_modeles/".$rne."discipline_sanction_".$id_nature_sanction.".odt")) {
if(unlink("../mod_ooo/mes_modeles/".$rne."discipline_sanction_".$id_nature_sanction.".odt")) {
$msg.="Modèle spécifique précédent n°".$id_nature_sanction." supprimé.
";
}
else {
$msg.="Erreur lors de la suppression du modèle spécifique précédent n°".$id_nature_sanction.".
";
$poursuivre="n";
}
}
if($poursuivre=="y") {
$res_copy=copy($monfichiertmp_name , "../mod_ooo/mes_modeles/".$rne."discipline_sanction_".$id_nature_sanction.".odt");
if(!$res_copy) {
$msg.="Erreur lors de la mise en place du fichier discipline_sanction_".$id_nature_sanction.".odt";
}
else {
$nb_fichiers_mis_en_place++;
}
}
}
}
}
if($nb_fichiers_mis_en_place>0) {
$msg.=$nb_fichiers_mis_en_place." fichier(s) mis en place.
";
}
}
}
//if((isset($nature))&&($nature!='')&&(isset($type))&&(($type=='prise')||($type=='demandee'))) {
if(isset($nature)) {
$a_enregistrer='y';
check_token();
$saisie_prof=isset($_POST['saisie_prof']) ? $_POST['saisie_prof'] : array();
$sql="SELECT * FROM s_types_sanctions2 ORDER BY nature;";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
$nb_types_sanctions=mysqli_num_rows($res);
if($nb_types_sanctions>0) {
$tab_nature=array();
$tab_saisie_prof_avant=array();
while($lig=mysqli_fetch_object($res)) {
$tab_nature[]=$lig->nature;
if($lig->saisie_prof=="y") {
$tab_saisie_prof_avant[]=$lig->id_nature;
}
if((!in_array($lig->id_nature, $saisie_prof))&&(in_array($lig->id_nature, $tab_saisie_prof_avant))) {
$sql="UPDATE s_types_sanctions2 SET saisie_prof='n' WHERE id_nature='$lig->id_nature';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$update) {
$msg.="Erreur lors de la suppression de la possibilité de saisie professeur de $lig->nature.
";
}
else {
$msg.="Suppression de la possibilité de saisie professeur de $lig->nature.
";
}
}
}
if(in_array($nature,$tab_nature)) {
$a_enregistrer='n';
$msg.="La nature ".$nature." existe déjà.
\n";
}
}
for($loop=0;$loop";
}
else {
$msg.="Enregistrement de la possibilité de saisie professeur des $mod_disc_terme_sanction n°".$saisie_prof[$loop].".
";
}
}
}
if((isset($nature))&&($nature!='')) {
if($a_enregistrer=='y') {
if(!in_array($type, $types_autorises)) {
$msg.="Le type de ".$mod_disc_terme_sanction." choisi n'est pas autorisé : ".$type.".
\n";
}
else {
$nature=suppression_sauts_de_lignes_surnumeraires($nature);
$nb_types_sanctions++;
$sql="INSERT INTO s_types_sanctions2 SET nature='".$nature."', type='".$type."', rang='".$nb_types_sanctions."';";
//echo "$sql
\n";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if(!$res) {
$msg.="ERREUR lors de l'enregistrement de ".$nature."
\n";
}
else {
$msg.="Enregistrement de ".$nature."
\n";
}
}
}
}
}
$themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?';
//**************** EN-TETE *****************
$titre_page = "Discipline: Définition des types de ".$mod_disc_terme_sanction."s";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE *****************
//debug_var();
echo "
Retour\n";
echo "
\n";
echo "Les types de ".$mod_disc_terme_sanction."s prédéfinis sont: Retenue, Exclusion, Travail.
La présente page est destinée à ajouter d'autres types de ".$mod_disc_terme_sanction."s ('mise au pilori', 'flagellation avec des orties', 'regarder Questions pour un champion',... selon les goûts de l'établissement en matière de supplices divers;o).
Vous pouvez maintenant aussi ajouter des ".$mod_disc_terme_sanction."s variantes de retenue, d'exclusion,... en en précisant le type.
\n";
echo "\n";
echo "
\n";
echo "NOTES :
\n";
echo "\n";
echo "- Le type Retenue permet de définir une date, une heure, une durée, un travail, des reports,...
\n";
echo "- Le type Exclusion permet de définir une date, une durée,...
\n";
echo "- Le type Travail permet de définir une date de retour, une heure de retour, un travail,...
\n";
echo "- Le type Autre permet seulement de définir une description.
\n";
echo "
\n";
echo "
\n";
require("../lib/footer.inc.php");
?>