Exemplo n.º 1
0
 /**
  * @Route("/adv/search", name="search", options={"expose"=true})
  * @param Request $request
  * @return JsonResponse
  */
 public function searchAction(Request $request)
 {
     $data = json_decode($request->getContent(), true);
     /** @var EntityManager $em */
     $em = $this->getDoctrine()->getManager();
     $qb = $em->createQueryBuilder();
     $slug = $data['slug'];
     $city = $data['city'];
     $region = $data['region'];
     $slug = trim($slug);
     $slug = str_replace(' ', '%', $slug);
     $slug = str_replace('.', '%', $slug);
     $slug = str_replace(',', '%', $slug);
     $slug = str_replace(':', '%', $slug);
     $qb->select('a')->from('NaidusvoeBundle:Advertisment', 'a')->where($qb->expr()->like('a.title', "'%" . $slug . "%'"))->orderBy('a.advertismentBlock', 'ASC')->addOrderBy('a.advertismentOnMainPage', 'ASC')->addOrderBy('a.categoryTop', 'ASC')->addOrderBy('a.colorHighlight', 'ASC');
     if ($region !== "none") {
         $qb->andWhere('a.regionId = :region')->setParameter('region', $region);
     }
     if ($city !== "none") {
         $qb->andWhere('a.city = :city')->setParameter('city', $city);
     }
     $advs = $qb->getQuery();
     $paginator = new Paginator();
     $pager = $paginator->getJsonResponse($advs, $request, 10);
     return new JsonResponse($pager);
 }
Exemplo n.º 2
0
 /**
  * // TODO: check for expiration
  * @Route("/get-advs/{type}/{filter}", name="get-advs", options={"expose"=true})
  * @param Request $request
  * @param string $type
  * @param int|null $filter
  * @return JsonResponse
  */
 public function getAdvsAction(Request $request, $type = null, $filter = null)
 {
     $typeID = null;
     switch ($type) {
         case 'trade':
             $typeID = 1;
             break;
         case 'gift':
             $typeID = 3;
             break;
         case 'found':
             $typeID = 2;
             break;
     }
     /** @var EntityManager $em */
     $em = $this->getDoctrine()->getManager();
     $advs = Advertisment::getAdvs($em, $filter, $typeID);
     $paginator = new Paginator();
     $pager = $paginator->getJsonResponse($advs, $request, 10);
     $categories = $em->getRepository('NaidusvoeBundle:AdvertismentCategory')->findBy(array('typeID' => $typeID));
     $bests = $this->get('naidusvoe.advertisement')->getBestAdvs($typeID);
     return new JsonResponse(array('advs' => $pager, 'categories' => Functions::arrayToJson($categories), 'bests' => Functions::arrayToJson($bests)));
 }