示例#1
0
 /**
  * @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;
 }
示例#2
0
 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;
 }
示例#3
0
 public static function recherche(&$param, $page)
 {
     $std = (object) array('success' => false, 'msg' => array());
     $cond = array();
     $strPagination = '';
     // On construit l'URL pour la pagination, et on construit un tableau pour la requête SQL
     if (!empty($param['titre'])) {
         $cond['titre'] = $param['titre'];
         $strPagination .= '&titre=' . urlencode($param['titre']);
     }
     if (!empty($param['date_debut'])) {
         if (($res = Date::verifierDate($param['date_debut'])) !== true) {
             $std->msg[] = $res . ' (date de début)';
         } else {
             $cond['date_debut'] = $param['date_debut'];
             $strPagination .= '&date_debut=' . $param['date_debut'];
         }
     }
     if (!empty($param['date_fin'])) {
         if (($res = Date::verifierDate($param['date_fin'])) !== true) {
             $std->msg[] = $res . ' (date de fin)';
         } else {
             $cond['date_fin'] = $param['date_fin'];
             $strPagination .= '&date_fin=' . $param['date_fin'];
         }
     }
     if (!empty($param['resolu'])) {
         if ($param['resolu'] != 'oui' && $param['resolu'] != 'non') {
             $std->msg[] = 'Valeur invalide pour le champ résolu';
         } else {
             $cond['resolu'] = $param['resolu'];
             $strPagination .= '&resolu=' . $param['resolu'];
         }
     }
     if (!empty($param['mots_cles'])) {
         // Construit un tableau de mots clés
         $tabMC = explode(',', $param['mots_cles']);
         $tabMCClean = array();
         foreach ($tabMC as $key => $value) {
             // On enlève les espaces de début et de fin
             $valueClean = trim($value);
             if ($valueClean != '') {
                 $tabMCClean[] = $valueClean;
                 // Si le mot clé est obligatoire, on supprime le + de début
                 if ($valueClean[0] == '+') {
                     $valueClean = substr($valueClean, 1);
                 }
                 if (($res = MotCle::checkExisteByLabel($valueClean)) !== true) {
                     $std->msg[] = $res;
                 }
             }
         }
         $cond['mots_cles'] = $tabMCClean;
     }
     // S'il y a des erreurs, on s'arrête
     if (!empty($std->msg)) {
         return $std;
     }
     $questionDAO = new QuestionDAO(BDD::getInstancePDO());
     // On récupère le nombre de questions qu'on a en résultat
     $count = $questionDAO->getQuestionsWithSearch(NB_QUESTIONS_PAGE, $cond, true);
     // On créé la pagination
     $std->pagination = new Pagination($page, $count, NB_QUESTIONS_PAGE, '/questions?recherche=' . $strPagination . '&page=');
     // On récupère les questions
     $std->questions = $questionDAO->getQuestionsWithSearch(NB_QUESTIONS_PAGE, $cond, false, $std->pagination->debut);
     if (empty($std->questions)) {
         $std->msg[] = 'Aucune question avec ces critères';
     } else {
         $std->success = true;
     }
     return $std;
 }
示例#4
0
 public function autocomplete($action, $id, $vars)
 {
     switch ($action) {
         case 'get':
             if (!empty($_GET['type']) && !empty($_GET['term'])) {
                 $res = NULL;
                 if ($_GET['type'] == 'motcle') {
                     $motCleDAO = new MotCleDAO(BDD::getInstancePDO());
                     $res = $motCleDAO->getAllComposedOf($_GET['term']);
                 } elseif ($_GET['type'] == 'membre') {
                     $membreDAO = new MembreDAO(BDD::getInstancePDO());
                     $res = $membreDAO->getAllComposedOf($_GET['term']);
                 } elseif ($_GET['type'] == 'titreTechnote') {
                     $technoteDAO = new TechnoteDAO(BDD::getInstancePDO());
                     $res = $technoteDAO->getAllTitreComposedOf($_GET['term']);
                 } elseif ($_GET['type'] == 'titreQuestion') {
                     $questionDAO = new QuestionDAO(BDD::getInstancePDO());
                     $res = $questionDAO->getAllTitreComposedOf($_GET['term']);
                 }
                 echo json_encode($res);
                 exit;
             }
             $this->vue->display('404.twig', $vars);
             exit;
         default:
             $this->vue->display('404.twig', $vars);
             exit;
     }
 }