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; }
/** * 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; }
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; }
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; }
/** * 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; }
/** * 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; }
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; }