/** * @return \stdClass Objet Contient les informations du profil d'un membre */ public function getProfil() { $tokenDAO = new TokenDAO(BDD::getInstancePDO()); $technoteDAO = new TechnoteDAO(BDD::getInstancePDO()); $commentaireDAO = new CommentaireDAO(BDD::getInstancePDO()); $questionDAO = new QuestionDAO(BDD::getInstancePDO()); $reponseDAO = new ReponseDAO(BDD::getInstancePDO()); $actionDAO = new ActionDAO(BDD::getInstancePDO()); $res = new stdClass(); $res->nbTokenActif = $tokenDAO->getNbActif($this->id_membre); $res->tokenActif = $tokenDAO->getActif($this->id_membre); $res->nbTechnoteRedige = $technoteDAO->getNbRedige($this->id_membre); $res->nbCommentaireRedige = $commentaireDAO->getNbRedige($this->id_membre); $res->nbQuestionRedige = $questionDAO->getNbRedige($this->id_membre); $res->nbReponseRedige = $reponseDAO->getNbRedige($this->id_membre); $res->actions = $actionDAO->getLast($this->id_membre); return $res; }
public function technotes($action, $id, $vars) { $technoteDAO = new TechnoteDAO(BDD::getInstancePDO()); switch ($action) { /**** GET ****/ case 'get': $vars['active_technotes'] = 1; // Active le style dans le menu technotes // Si on veut voir une technote précise if (!empty($id)) { // On récupère la technote $vars['technote'] = $technoteDAO->getOne($id); // Si la technote existe if ($vars['technote'] !== false && $vars['technote']->visible && ($vars['technote']->publie || $vars['technote']->id_auteur == $_SESSION['user']->id_membre || $_SESSION['user']->groupe == 'Administrateur' || $_SESSION['user']->groupe == 'Modérateur')) { $vars['titrePage'] = $vars['technote']->titre; // <h1> de la page $this->vue->display('technotes_get_one.twig', $vars); } else { $this->vue->display('404.twig', $vars); } } else { // On récupère la page $page = !empty($_GET['page']) ? $_GET['page'] : 1; $technoteDAO = new TechnoteDAO(BDD::getInstancePDO()); // Si on veut faire une recherche de technotes if (isset($_GET['recherche'])) { $vars['titrePage'] = 'Chercher une technote'; // <h1> de la page // on recupère la page $page = !empty($_GET['page']) ? $_GET['page'] : 1; // On essaye de récupèrer les technotes avec les critères de recherche $res = Technote::recherche($_GET, $page); if ($res->success) { $vars['pagination'] = $res->pagination; $vars['technotes'] = $res->technotes; } else { $vars['res'] = $res; } } elseif (isset($_GET['nonpublie'])) { $vars['titrePage'] = 'Mes technotes non publié'; // <h1> de la page $vars['active_technotes_non_publie'] = 1; // Active le style dans le sous menu toutes les technotes // On récupère le nombre total de technotes non publié par l' $count = $technoteDAO->getNbRedige($_SESSION['user']->id_membre, 0); // On créé la pagination $vars['pagination'] = new Pagination($page, $count, NB_TECHNOTES_PAGE, '/technotes/get?nonpublie&page='); // On récupère les technotes $vars['technotes'] = $technoteDAO->getLastNTechnotes(NB_TECHNOTES_PAGE, $vars['pagination']->debut, 0, $_SESSION['user']->id_membre); $vars['getNonPublie'] = true; } else { $vars['titrePage'] = 'Toutes les technotes'; // <h1> de la page $vars['active_technotes_all'] = 1; // Active le style dans le sous menu toutes les technotes // On récupère le nombre total de technotes $count = $technoteDAO->getCount(); // On créé la pagination $vars['pagination'] = new Pagination($page, $count, NB_TECHNOTES_PAGE, '/technotes/get?page='); // On récupère les technotes $vars['technotes'] = $technoteDAO->getLastNTechnotes(NB_TECHNOTES_PAGE, $vars['pagination']->debut); } $this->vue->display('technotes_get_all.twig', $vars); } exit; /**** ADD ****/ /**** ADD ****/ case 'add': $vars['active_technotes'] = 1; // Active le style dans le menu technotes $vars['active_technotes_add'] = 1; // Active le style dans le sous menu ajout de technote $vars['titrePage'] = 'Ajouter une technote'; // <h1> de la page // On récupère tous les mots clés $motCleDAO = new MotCleDAO(BDD::getInstancePDO()); $vars['motsCles'] = $motCleDAO->getAllActif(); // Si un formulaire a été envoyé if (!empty($_POST)) { // Si le formulaire est valide au niveau faille CSRF if (!empty($_POST['jetonCSRF']) && $_POST['jetonCSRF'] == $_SESSION['jetonCSRF']) { // On essaye d'enregistrer la technote $res = Technote::addTechnote($_POST, $_FILES); if ($res->success) { $res->redirect = "/technotes/get/{$res->id_technote}"; } echo json_encode($res); exit; } } $this->vue->display('technotes_add.twig', $vars); exit; /**** EDIT ****/ /**** EDIT ****/ case 'edit': $vars['active_technotes'] = 1; // Active le style dans le menu technotes $vars['titrePage'] = 'Modifier une technote'; // <h1> de la page $vars['technote'] = $technoteDAO->getOne($id); // On récupère tous les mots clés $motCleDAO = new MotCleDAO(BDD::getInstancePDO()); $vars['motsCles'] = $motCleDAO->getAllActif(); // Si un formulaire a été envoyé if (!empty($_POST)) { // Si le formulaire est valide au niveau faille CSRF if (!empty($_POST['jetonCSRF']) && $_POST['jetonCSRF'] == $_SESSION['jetonCSRF']) { // On essaye d'enregistrer la technote $res = Technote::editTechnote($_POST, $_FILES, $id); if ($res->success) { $res->redirect = "/technotes/get/{$id}"; } echo json_encode($res); exit; } } $this->vue->display('technotes_edit.twig', $vars); exit; /**** DROP ****/ /**** DROP ****/ case 'drop': if (!empty($_POST)) { // Si le formulaire est valide au niveau faille CSRF if (!empty($_POST['jetonCSRF']) && $_POST['jetonCSRF'] == $_SESSION['jetonCSRF']) { // On essaye d'enregistrer le commentaire $res = Technote::dropTechnote($id); if ($res->success) { $res->redirect = "/technotes"; } echo json_encode($res); } } exit; default: $this->vue->display('404.twig', $vars); exit; } }