예제 #1
0
 public static function editQuestion(&$param, $id_question)
 {
     $resCheck = self::check($param);
     $res = $resCheck;
     if ($resCheck->success === true) {
         $questionDAO = new QuestionDAO(BDD::getInstancePDO());
         $question = new Question(array('id_question' => $id_question, 'titre' => $param['titre'], 'question' => $param['question'], 'id_modificateur' => $_SESSION['user']->id_membre, 'resolu' => $param['resolu']));
         if (($resSaveQuestion = $questionDAO->save($question)) !== false) {
             $clarifierDAO = new ClarifierDAO(BDD::getInstancePDO());
             if (!empty($param['id_mot_cle'])) {
                 foreach ($param['id_mot_cle'] as $id_mot_cle) {
                     $clarifier = new Clarifier(array('id_question' => $id_question, 'id_mot_cle' => $id_mot_cle));
                     $clarifierDAO->save($clarifier);
                 }
             }
             $actionDAO = new ActionDAO(BDD::getInstancePDO());
             $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => "Modification d\\'une question (question n°{$id_question})", 'id_membre' => $_SESSION['user']->id_membre));
             $actionDAO->save($action);
             $res->success = true;
             $res->msg[] = 'Modification de la question réussie';
         } else {
             $res->success = false;
             $res->msg[] = 'Erreur BDD';
         }
     }
     return $res;
 }
예제 #2
0
 /**
  * Envoi un email
  * @return object 2 attributs, bool success et array string msg
  */
 public function sendMail()
 {
     $resCheck = $this->check();
     $res = $resCheck;
     if ($resCheck->success === true) {
         $param = array('pseudo' => 'Admin', 'pseudoExpediteur' => $this->pseudo, 'emailExpediteur' => $this->email, 'sujet' => $this->sujet, 'message' => nl2br($this->message));
         $mail = new Mail(DESTINATAIRE_MAIL_CONTACT, '[Technote] Contact', 'mail_contact.twig', $param);
         $resMail = $mail->sendMail();
         $res->success = $resCheck->success && $resMail->success;
         $res->msg = array_merge($res->msg, $resMail->msg);
         if ($resMail->success === true && !empty($_SESSION['user'])) {
             $actionDAO = new ActionDAO(BDD::getInstancePDO());
             $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => 'Contact par formulaire', 'id_membre' => $_SESSION['user']->id_membre));
             $actionDAO->save($action);
         }
     }
     return $res;
 }
예제 #3
0
 public static function addReponse(&$param)
 {
     $resCheck = self::checkAdd($param);
     $res = $resCheck;
     if ($resCheck->success === true) {
         $reponseDAO = new ReponseDAO(BDD::getInstancePDO());
         $reponse = new Reponse(array('id_reponse' => DAO::UNKNOWN_ID, 'reponse' => $param['reponse'], 'id_auteur' => $_SESSION['user']->id_membre, 'id_question' => $param['id_question'], 'id_reponse_parent' => $param['id_reponse_parent'], 'visible' => '1'));
         if (($resSaveReponse = $reponseDAO->save($reponse)) !== false) {
             $actionDAO = new ActionDAO(BDD::getInstancePDO());
             $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => "Ajout d\\'une réponse (réponse n°{$resSaveReponse->id_reponse})", 'id_membre' => $_SESSION['user']->id_membre));
             $actionDAO->save($action);
             $res->success = true;
             $res->msg[] = 'Ajout de la réponse réussie';
             $reponse = (object) array_merge($resSaveReponse->getFields(), array('auteur' => $_SESSION['user']->pseudo));
             $res->add['reponses'] = $reponse;
         } else {
             $res->success = false;
             $res->msg[] = 'Erreur BDD';
         }
     }
     return $res;
 }
예제 #4
0
 public static function addCommentaire(&$param)
 {
     $resCheck = self::checkAdd($param);
     $res = $resCheck;
     if ($resCheck->success === true) {
         $commentaireDAO = new CommentaireDAO(BDD::getInstancePDO());
         $commentaire = new Commentaire(array('id_commentaire' => DAO::UNKNOWN_ID, 'commentaire' => nl2br($param['commentaire']), 'id_auteur' => $_SESSION['user']->id_membre, 'id_technote' => $param['id_technote'], 'id_commentaire_parent' => $param['id_commentaire_parent'], 'visible' => '1'));
         if (($resSaveCommentaire = $commentaireDAO->save($commentaire)) !== false) {
             $actionDAO = new ActionDAO(BDD::getInstancePDO());
             $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => "Ajout d\\'un commentaire (commentaire n°{$resSaveCommentaire->id_commentaire})", 'id_membre' => $_SESSION['user']->id_membre));
             $actionDAO->save($action);
             $res->success = true;
             $res->msg[] = 'Ajout du commentaire réussie';
             $commentaire = (object) array_merge($resSaveCommentaire->getFields(), array('auteur' => $_SESSION['user']->pseudo));
             $res->add['commentaires'] = $commentaire;
         } else {
             $res->success = false;
             $res->msg[] = 'Erreur BDD';
         }
     }
     return $res;
 }
예제 #5
0
 /**
  * Vérifie que le mot de passe peut etre modifié par oublie
  * @param array $param Les attributs de la demande de réinitialisation du mot de passe
  * @return object 2 attributs, bool success et array string msg
  * @static
  */
 public static function sendMailLostPass(&$param)
 {
     $resCheck = self::checkSendMailLostPass($param);
     $res = $resCheck;
     if (!isset($resCheck->success)) {
         $membreRes = $resCheck;
         $cle = hash('sha256', uniqid(rand(), true) . SALT_RESET_PASS);
         $membreDAO = new MembreDAO(BDD::getInstancePDO());
         $membre = new membre(array('id_membre' => $membreRes->id_membre, 'cle_reset_pass' => $cle));
         if (($resSave = $membreDAO->save($membre)) !== false) {
             $param = array('pseudo' => $membreRes->pseudo, 'sujet' => 'Oubli de mot de passe', 'cle' => $cle);
             $mail = new Mail($membreRes->email, '[Technote] Oubli de mot de passe', 'mail_lostPass.twig', $param);
             $resMail = $mail->sendMail();
             $res = $resMail;
             if ($resMail->success === true) {
                 $actionDAO = new ActionDAO(BDD::getInstancePDO());
                 $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => 'Oubli de mot de passe (création de la clé)', 'id_membre' => $membreRes->id_membre));
                 $actionDAO->save($action);
                 $res->success = true;
                 $res->msg[0] = 'Un email vous a été envoyé, merci de suivre les instructions';
             }
         } else {
             $res->success = false;
             $res->msg[] = 'Erreur BDD';
         }
     }
     return $res;
 }
예제 #6
0
 /**
  * Vérifie et ajoute une technote
  * @param array $param Les attributs de la technotes
  * @return object 2 attributs, bool success et array string msg
  * @static
  */
 public static function addTechnote(&$param, &$files)
 {
     $resCheck = self::checkTechnote($param, $files, 'add');
     $res = $resCheck;
     if ($resCheck->success === true) {
         $technoteDAO = new TechnoteDAO(BDD::getInstancePDO());
         $technote = new Technote(array('id_technote' => DAO::UNKNOWN_ID, 'titre' => $param['titre'], 'contenu' => $param['contenu'], 'id_auteur' => $_SESSION['user']->id_membre, 'url_image' => $param['url_image'], 'description' => $param['description'], 'publie' => $param['publie'], 'visible' => '1'));
         if (($resSaveTechnote = $technoteDAO->save($technote)) !== false) {
             $decrireDAO = new DecrireDAO(BDD::getInstancePDO());
             if (!empty($param['id_mot_cle'])) {
                 foreach ($param['id_mot_cle'] as $id_mot_cle) {
                     $decrire = new Decrire(array('id_technote' => $resSaveTechnote->id_technote, 'id_mot_cle' => $id_mot_cle));
                     $decrireDAO->save($decrire);
                 }
             }
             $actionDAO = new ActionDAO(BDD::getInstancePDO());
             $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => "Ajout d\\'une technote (technote n°{$resSaveTechnote->id_technote})", 'id_membre' => $_SESSION['user']->id_membre));
             $actionDAO->save($action);
             $res->success = true;
             $res->id_technote = $resSaveTechnote->id_technote;
             $res->msg[] = 'Ajout de la technote réussie';
         } else {
             $res->success = false;
             $res->msg[] = 'Erreur BDD';
         }
     }
     return $res;
 }
예제 #7
0
 public static function add(&$param)
 {
     $std = (object) array('success' => false, 'msg' => array());
     if (($res = MotCle::checkLabel($param['label'])) !== true) {
         $std->msg[] = $res;
     }
     if (!empty($std->msg)) {
         return $std;
     }
     // Si c'est un modérateur ou un admin actif, sinon non actif
     $actif = $_SESSION['user']->groupe == 'Administrateur' || $_SESSION['user']->groupe == 'Modérateur' ? 1 : 0;
     $motCle = new MotCle(array('id_mot_cle' => DAO::UNKNOWN_ID, 'label' => $param['label'], 'actif' => $actif));
     $motCleDAO = new MotCleDAO(BDD::getInstancePDO());
     $resSave = $motCleDAO->save($motCle);
     if ($resSave !== false) {
         $std->msg[] = 'Mot clé créer avec succès';
     } else {
         $std->msg[] = 'Erreur BDD';
     }
     $actionDAO = new ActionDAO(BDD::getInstancePDO());
     $action = new Action(array('id_action' => DAO::UNKNOWN_ID, 'libelle' => "Création d\\'un mot clé (mot clé n°{$resSave->id_mot_cle} : {$resSave->label})", 'id_membre' => $_SESSION['user']->id_membre));
     $actionDAO->save($action);
     $std->success = true;
     return $std;
 }