private static function checkAdd(&$param) { $std = (object) array('success' => false, 'msg' => array()); $questionDAO = new QuestionDAO(BDD::getInstancePDO()); if (($res = $questionDAO->getOne($param['id_question'])) !== false) { if (($res = self::checkReponse($param['reponse'])) !== true) { $std->msg[] = $res; } if (($res = self::checkReponseParent($param['id_reponse_parent'], $param['id_question'])) !== true) { $std->msg[] = $res; } } else { $std->msg[] = 'La question n\'existe pas'; } if (empty($std->msg)) { $std->success = true; } return $std; }
public function questions($action, $id, $vars) { switch ($action) { case 'get': $vars['active_questions'] = 1; // Active le style dans le menu questions $questionDAO = new QuestionDAO(BDD::getInstancePDO()); // Si on veut voir une question précise if (!empty($id)) { // On récupère la technote $vars['question'] = $questionDAO->getOne($id); // Si la question existe if ($vars['question'] !== false) { $vars['titrePage'] = $vars['question']->titre; // <h1> de la page $this->vue->display('questions_get_one.twig', $vars); } else { $this->vue->display('404.twig', $vars); } } else { // Si on veut faire une recherche de question if (isset($_GET['recherche'])) { $vars['titrePage'] = 'Chercher une question'; // <h1> de la page // on recupère la page $page = !empty($_GET['page']) ? $_GET['page'] : 1; // On essaye de récupèrer les questions avec les critères de recherche $res = Question::recherche($_GET, $page); if ($res->success) { $vars['pagination'] = $res->pagination; $vars['questions'] = $res->questions; } else { $vars['res'] = $res; } } else { $vars['titrePage'] = 'Les dernières questions'; // <h1> de la page // On récupère la page $page = !empty($_GET['page']) ? $_GET['page'] : 1; $vars['active_questions_all'] = 1; // Active le style dans le sous menu toutes les questions // On récupère le nombre total de questions $count = $questionDAO->getCount(); // On créé la pagination $vars['pagination'] = new Pagination($page, $count, NB_QUESTIONS_PAGE, '/questions/get?page='); // On récupère les questions $vars['questions'] = $questionDAO->getLastNQuestions(NB_QUESTIONS_PAGE, $vars['pagination']->debut); } $this->vue->display('questions_get_all.twig', $vars); } exit; /**** ADD ****/ /**** ADD ****/ case 'add': $vars['active_questions'] = 1; // Active le style dans le menu questions $vars['active_questions_add'] = 1; // Active le style dans le sous menu ajout de questions $vars['titrePage'] = 'Poser une question'; // <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 = Question::addQuestion($_POST); if ($res->success) { $res->redirect = "/questions/get/{$res->id_question}"; } echo json_encode($res); exit; } } $this->vue->display('questions_add.twig', $vars); exit; /**** EDIT ****/ /**** EDIT ****/ case 'edit': $vars['active_questions'] = 1; // Active le style dans le menu questions $vars['titrePage'] = 'Modifier une question'; // <h1> de la page $questionDAO = new QuestionDAO(BDD::getInstancePDO()); $vars['question'] = $questionDAO->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 = Question::editQuestion($_POST, $id); if ($res->success) { $res->redirect = "/questions/get/{$id}"; } echo json_encode($res); exit; } } $this->vue->display('questions_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 = Question::dropQuestion($id); if ($res->success) { $res->redirect = "/questions"; } echo json_encode($res); } } exit; default: $this->vue->display('404.twig', $vars); exit; } }