private function assignFilter(HTTPRequest $request, AnnounceFilter $announceFilter) { $regionId = htmlspecialchars($request->getData('regionId')); $departmentId = htmlspecialchars($request->getData('departmentId')); $categoryId = htmlspecialchars($request->getData('categoryId')); $subCategoryId = htmlspecialchars($request->getData('subCategoryId')); $zipCode = htmlspecialchars($request->getData('zipCode')); $filterText = htmlspecialchars(urldecode($request->getData('filter'))); $filterText = preg_replace('/(\\/|\\+)/', ' ', $filterText); //Supprime les espaces inutiles $filterText = preg_replace('/\\s\\s+/', ' ', $filterText); $announceFilter->setRegionId($regionId); $announceFilter->setDepartmentId($departmentId); $announceFilter->setCategoryId($categoryId); $announceFilter->setSubCategoryId($subCategoryId); $announceFilter->setZipCode($zipCode); $announceFilter->setFilterText($filterText); $inCommunity = htmlspecialchars($request->getData('community')); if (!empty($inCommunity)) { $inCommunity = $this->app->user()->getAttribute('id'); } $announceFilter->setInCommunity($inCommunity); $this->page->smarty()->assign('filter', $announceFilter); }
public function getAnnouncementPro(AnnounceFilter $announceFilter) { global $tipkin_prefix; $where = " WHERE 1"; if ($announceFilter->getCategoryId() != "" && $announceFilter->getCategoryId() != "all") { $where .= " AND CATEGORY_ID =" . (int) $announceFilter->getCategoryId(); } if ($announceFilter->getSubCategoryId() != "" && $announceFilter->getSubCategoryId() != "all") { $where .= " AND SUB_CATEGORY_ID =" . (int) $announceFilter->getSubCategoryId(); } if ($announceFilter->getRegionId() != "all" && $announceFilter->getRegionId() != "") { $where .= " AND REGION_ID =" . (int) $announceFilter->getRegionId(); } if ($announceFilter->getDepartmentId() != "all" && $announceFilter->getDepartmentId() != "") { $where .= " AND DEPARTMENT_ID ='" . $announceFilter->getDepartmentId() . "'"; } if ($announceFilter->getZipCode() != "") { $where .= " AND ZIP_CODE ='" . $announceFilter->getZipCode() . "'"; } //Filtre texte $where .= " AND (TITLE LIKE '%" . $announceFilter->getFilterText() . "%' OR DESCRIPTION LIKE '%" . $announceFilter->getFilterText() . "%')"; //Contrainte globale pour la recherche $where .= " AND STATE_ID =" . AnnouncementStates::STATE_VALIDATED; $where .= " AND IS_PUBLISHED =" . true; //Fin de contrainte globale $query = 'SELECT * FROM ' . $tipkin_prefix . 'announcements_pro' . $where . ' ORDER BY PUBLICATION_DATE DESC'; //echo $query; die; $q = $this->dao->prepare($query); $q->execute(); $announces = array(); while ($data = $q->fetch(PDO::FETCH_ASSOC)) { $announces[] = new AnnouncementPro($data); } return $announces; }