Example #1
0
 public function __construct($util, $get = null)
 {
     parent::__construct($util);
     $this->model();
     $texte = null;
     if (isset($get["num"])) {
         $num = $get["num"];
     } else {
         $num = null;
     }
     $rech = false;
     // si null, vient de menua (menu admin)
     $model = new Model();
     $crypte = new Crypte();
     if (!is_null($num)) {
         //origine=clic un bouton enregistrer ou supprimer
         if (isset($get["envoi"])) {
             $enregistrer = $get["envoi"];
         } else {
             $enregistrer = null;
         }
         if (!is_null($enregistrer)) {
             //on a cliqué un bouton envoi
             switch ($num) {
                 case 1:
                     //vient de la page groupe
                     $nombouton = $get["envoi"];
                     if ($nombouton == "Enregistrer") {
                         if ($get["nom"] != '' && $get['an'] != '') {
                             if (preg_match("/^[0-9]{2}/", $get["an"])) {
                                 $nom = $this->ha($get["nom"]);
                                 $an = $this->ha($get["an"]);
                                 $parcours = $get["parcours"];
                                 if (!isset($get["numgroupe"])) {
                                     //création groupe
                                     if ($model->setGroupe($nom, $an, $parcours)) {
                                         $texte = 'Groupe créé';
                                     } else {
                                         $texte = 'Ce groupe existe déjà';
                                     }
                                 } else {
                                     //modif groupe
                                     $numgroupe = $get["numgroupe"];
                                     $rep = $model->modifGroupe($numgroupe, $nom, $an, $parcours);
                                     $texte = 'Groupe modifié';
                                 }
                             }
                         }
                     }
                     if ($nombouton == "Supprimer") {
                         if (isset($get["numgroupe"])) {
                             $numgroupe = $get["numgroupe"];
                             if ($numgroupe != 0) {
                                 $model->delGroupe($numgroupe);
                                 $texte = 'Groupe supprimé';
                             }
                         }
                     }
                     break;
                 case 2:
                     //vient bouton enregistrement prof
                     $nombouton = $get["envoi"];
                     if ($nombouton == "Enregistrer") {
                         $nom = $this->ha($get["nom"]);
                         $mel = $this->ha($get["mel"]);
                         if ($nom != '' && $mel != '' && $this->ctrlmel($mel)) {
                             $prenom = $this->ha($get["prenom"]);
                             $niveau = $get["niveau"];
                             if (isset($get["chk"])) {
                                 $chk = $get["chk"];
                             } else {
                                 $chk = array();
                             }
                             if (!isset($get["numprof"])) {
                                 //création
                                 $res = $model->setProf($nom, $prenom, $mel, $niveau, $crypte->getSmtp(), $crypte->getCrypte());
                                 if ($res) {
                                     $numprof = $model->getId();
                                     $model->affecteGroupe($numprof, $chk);
                                 }
                             } else {
                                 //maj
                                 $numprof = $get["numprof"];
                                 if (isset($get["chmdp"])) {
                                     $mdp = $this->ha($get["mdp"]);
                                 } else {
                                     $mdp = null;
                                 }
                                 $res = $model->modifProf($numprof, $nom, $prenom, $mel, $niveau, $mdp, $crypte->getSmtp(), $crypte->getCrypte());
                                 if ($res) {
                                     $model->modifAffecteGroupe($numprof, $chk);
                                 }
                             }
                             if ($res) {
                                 $texte = 'données enregistrées';
                             } else {
                                 $texte = 'pas d\'enregistrement (doublon)';
                             }
                         } else {
                             $texte = 'données incorrectes';
                         }
                     }
                     if ($nombouton == "Supprimer") {
                         $numprof = $get["numprof"];
                         if (!is_null($numprof)) {
                             if ($numprof != 0) {
                                 $model->suppProf($numprof);
                                 $texte = 'Professeur supprimé';
                             }
                         }
                     }
                     break;
                 case 3:
                     //vient bouton enregistrement étudiant
                     $nombouton = $get["envoi"];
                     if ($nombouton == "Enregistrer") {
                         $nom = $this->ha($get["nom"]);
                         $prenom = $this->ha($get["prenom"]);
                         $mel = $this->ha($get["mel"]);
                         if ($nom != '' && $mel != '' && $this->ctrlmel($mel)) {
                             $groupe = $get["groupe"];
                             if ($groupe == 0) {
                                 $groupe = 'null';
                             }
                             if (!isset($get["numetud"])) {
                                 $res = $model->setEtudiant($nom, $prenom, $mel, $groupe, $crypte->getSmtp(), $crypte->getCrypte());
                             } else {
                                 $numetud = $get["numetud"];
                                 if (isset($get["chmdp"])) {
                                     $mdp = $this->ha($get["mdp"]);
                                 } else {
                                     $mdp = null;
                                 }
                                 $res = $model->modifEtudiant($numetud, $nom, $prenom, $mel, $groupe, $mdp, $crypte->getSmtp(), $crypte->getCrypte());
                             }
                             if ($res) {
                                 $texte = 'données enregistrées';
                             } else {
                                 $texte = 'pas d\'enregistrement (doublon)';
                             }
                         } else {
                             $texte = 'données incorrectes';
                         }
                     }
                     if ($nombouton == "Supprimer") {
                         $numetud = $get["numetud"];
                         if (!is_null($numetud)) {
                             if ($numetud != 0) {
                                 $model->suppEtud($numetud);
                                 $texte = 'Étudiant supprimé';
                             }
                         }
                     }
                     break;
                 case 4:
                     //on vient page recherche objet
                     $rech = true;
                     $nombouton = $get["envoi"];
                     if ($nombouton == "Rechercher") {
                         $codeobj = $get["groupes"];
                         if ($codeobj > 0) {
                             $num = 1;
                         } else {
                             $codeobj = $get["professeurs"];
                             if ($codeobj > 0) {
                                 $num = 2;
                             } else {
                                 $codeobj = $get["etudiants"];
                                 $num = 3;
                             }
                         }
                     }
                     break;
                 case 5:
                     //on vient page téléversement fichier élève
                     $repfic = 'dirrw/upload/';
                     $groupe = $get["groupes"];
                     if ($groupe == 0) {
                         $texte = "choisir le groupe d'affectation";
                     } else {
                         $texte = "";
                         if (empty($_FILES['fichier']['name'])) {
                             $texte = "aucun fichier sélectionné";
                         } else {
                             $tmp = $_FILES['fichier']['tmp_name'];
                             if (!is_uploaded_file($tmp)) {
                                 $texte = "fichier non trouvé";
                             } else {
                                 $nf = $_FILES['fichier']['name'];
                                 if ($nf != "noms.csv") {
                                     $texte = "ce nom de fichier ne convient pas";
                                 } else {
                                     if (!move_uploaded_file($tmp, $repfic . $nf)) {
                                         $texte = "impossible de copier le fichier";
                                     } else {
                                         $texte = "le fichier a été téléversé";
                                         //$nb=$this->enregData($groupe);
                                         //on lit le fichier de noms, on les enregistre dans la BD
                                         // puis on efface le fichier
                                         //on compte le nombre d'erreurs d'enregistrement
                                         $flu = fopen("dirrw/upload/noms.csv", "r");
                                         $nb = 0;
                                         //nb erreurs
                                         while ($ligne = fgetcsv($flu, 140, ";")) {
                                             $nom = $ligne[0];
                                             $prenom = $ligne[1];
                                             $mel = $ligne[2];
                                             //tester vraisemblances : à faire pour plus tard...
                                             if (!$model->setEtudiant($nom, $prenom, $mel, $groupe, $crypte->getSmtp(), $crypte->getCrypte())) {
                                                 $nb++;
                                             }
                                         }
                                         fclose($flu);
                                         //supprimer fichier
                                         unlink("dirrw/upload/noms.csv");
                                         if ($nb == 0) {
                                             $texte .= " et les données mises à jour";
                                         } else {
                                             $texte .= " mais son contenu n'est pas correct (" . $nb . " problème(s))";
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     break;
             }
         }
     } else {
         $num = 1;
     }
     $this->setViewMenu();
     switch ($num) {
         case 1:
             if ($rech) {
                 $data = array("groupe" => $model->getGroupe($codeobj));
             } else {
                 $data = array("groupes" => $model->getGroupes());
             }
             break;
         case 2:
             if ($rech) {
                 $data = array("professeur" => $model->getProfesseur($codeobj), "groupes" => $model->getGroupesProf($codeobj));
             } else {
                 $data = array("groupes" => $model->getGroupes());
             }
             break;
         case 3:
             if ($rech) {
                 $data = array("etudiant" => $model->getEtudiant($codeobj), "groupes" => $model->getGroupes());
             } else {
                 $data = array("groupes" => $model->getGroupes());
             }
             break;
         case 4:
             $data = array("groupes" => $model->getGroupes(), "professeurs" => $model->getProfesseurs(), "etudiants" => $model->getEtudiants());
             break;
         case 5:
             $data = array("groupes" => $model->getGroupes());
     }
     $data["lng"] = $model->getLng();
     $model->close();
     $data["param"] = $num;
     $data["messagetexte"] = $texte;
     $data["auth"] = $this->util->estAuthent();
     $this->view->init('groupe' . $num . '.php', $data);
     $this->setViewBas();
 }
Example #2
0
 public function __construct($util, $get = null)
 {
     parent::__construct($util);
     $this->model();
     $model = new Model();
     $nbsauve = 3;
     //nombre max de sauvegardes par étudiant
     $dec = 0;
     //valeur indentation
     $decsup = 2;
     //incrément d'indentation
     $nt = $this->util->getId();
     $nf = substr('0000' . $nt, -4, 4);
     $refsauve = uniqid();
     $repfic = 'dirrw/xml/';
     $extene = '.xml';
     // ne conserve que nbsauve fichiers
     $dir = opendir($repfic);
     $fics = array();
     $nbfics = 0;
     while ($fic = readdir($dir)) {
         if (substr($fic, 0, 4) == $nf) {
             $fics[] = $fic;
             $nbfics++;
         }
     }
     if ($nbfics >= $nbsauve) {
         //il y a trop de fichiers on en supprime nbsauve-1
         rsort($fics);
         for ($i = $nbsauve - 1; $i < $nbfics; $i++) {
             //normalement un seul à effacer
             unlink($repfic . $fics[$i]);
         }
     }
     closedir($dir);
     //sauvegarde, on en ajoute 1 dans le répertoire
     $nomfice = $repfic . $nf . $refsauve . "G" . $extene;
     $fic = fopen($nomfice, "w");
     $entete = '<?xml version="1.0" encoding="ISO-8859-1"  standalone="yes" ?' . ">\r\n";
     fputs($fic, $entete);
     fputs($fic, $this->lgx($dec, "suivicomp", "", "", 1));
     $dec += $decsup;
     fputs($fic, $this->lgx($dec, "sauvegarde", "ref", $refsauve, 2));
     $dec += $decsup;
     fputs($fic, $this->lgx($dec, "ref", "", $refsauve, 3));
     fputs($fic, $this->lgx($dec, "datesv", "", date("Y-m-d"), 3));
     $dec -= $decsup;
     fputs($fic, $this->lgx($dec, "sauvegarde", "", "", 4));
     $ligne = $model->getEtudiant($nt);
     fputs($fic, $this->lgx($dec, "etudiant", "numero", $nt, 2));
     $dec += $decsup;
     fputs($fic, $this->lgx($dec, "nom", "", $ligne[0]["nom"], 3));
     fputs($fic, $this->lgx($dec, "prenom", "", $ligne[0]["prenom"], 3));
     fputs($fic, $this->lgx($dec, "mel", "", $ligne[0]["mel"], 3));
     $tbs = $model->getSituationsXML($nt);
     //chaque situation
     foreach ($tbs as $situ) {
         $ns = $situ["ref"];
         fputs($fic, $this->lgx($dec, "situation", "ref", $ns, 2));
         $dec += $decsup;
         //chaque donnée d'une situ
         foreach ($situ as $cle => $val) {
             fputs($fic, $this->lgx($dec, $cle, "", $val, 3));
         }
         //les commentaires
         $com = $model->getCommentaireSauve($ns);
         if (count($com > 0)) {
             foreach ($com as $valid) {
                 fputs($fic, $this->lgx($dec, "avisprof", "", "", 1));
                 $dec += $decsup;
                 //chaque donnée d'un comm
                 foreach ($valid as $cle => $val) {
                     fputs($fic, $this->lgx($dec, $cle, "", $val, 3));
                 }
                 $dec -= $decsup;
                 fputs($fic, $this->lgx($dec, "avisprof", "", "", 4));
             }
         }
         //les activites citées
         $tbp = $model->getActiviteCitee($ns);
         //chaque activite citee
         foreach ($tbp as $act) {
             $numact = $act["idActivite"];
             fputs($fic, $this->lgx($dec, "activitecitee", "numero", $numact, 2));
             $dec += $decsup;
             //chaque donnée d'une activite citee
             foreach ($act as $cle => $val) {
                 fputs($fic, $this->lgx($dec, $cle, "", $val, 3));
             }
             $dec -= $decsup;
             fputs($fic, $this->lgx($dec, "activitecitee", "", "", 4));
         }
         //les productions
         $tbp = $model->getProduction($ns);
         //chaque production
         foreach ($tbp as $prod) {
             $nc = $prod["numero"];
             fputs($fic, $this->lgx($dec, "production", "numero", $nc, 2));
             $dec += $decsup;
             //chaque donnée d'une production
             foreach ($prod as $cle => $val) {
                 fputs($fic, $this->lgx($dec, $cle, "", $val, 3));
             }
             $dec -= $decsup;
             fputs($fic, $this->lgx($dec, "production", "", "", 4));
         }
         //les typologies (types situation obligatoires)
         $tbp = $model->getTypologies($ns);
         //chaque typologie
         foreach ($tbp as $typo) {
             //$nc=$prod["numero"];
             fputs($fic, $this->lgx($dec, "typologie", "", "", 1));
             $dec += $decsup;
             //chaque donnée d'une typologie
             foreach ($typo as $cle => $val) {
                 fputs($fic, $this->lgx($dec, $cle, "", $val, 3));
             }
             $dec -= $decsup;
             fputs($fic, $this->lgx($dec, "typologie", "", "", 4));
         }
         $dec -= $decsup;
         fputs($fic, $this->lgx($dec, "situation", "", "", 4));
     }
     //fin chaque situation
     $dec -= $decsup;
     fputs($fic, $this->lgx($dec, "etudiant", "", "", 4));
     $dec -= $decsup;
     fputs($fic, $this->lgx($dec, "suivicomp", "", "", 4));
     fclose($fic);
     $model->close();
     $this->setViewMenu();
     $data["fic"] = $nf . $refsauve . "G" . $extene;
     $data["auth"] = $this->util->estAuthent();
     $this->view->init('sauvee.php', $data);
     $this->setViewBas();
 }