public function appAction()
    {
    	
    	if(!$this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') ){
    		return $this->redirectToRoute('fos_user_security_login');
    	}
    	
    	$categories=$this->getDoctrine()
    	->getRepository("AdsmanagerBundle:AdsmanagerCategories");
    	$query = $categories->createQueryBuilder('a')
    	->addOrderBy('a.ordering', 'ASC')
    	->getQuery();
    	 
    	$categories = $query->getResult();

    	$cities=new AdsmanagerCities();
    	
    	$adCities=$cities->getAllCities($this->getDoctrine()->getEntityManager());
    	
		$userLocation = $this->get('security.context')->getToken()->getUser()->getLocation();
		$locationCity=$cities->getAdCity($this->getDoctrine()->getEntityManager(),$userLocation,$this);
    	
    	$em = $this->getDoctrine()->getManager();
    	$query = $em->createQuery(
    			'SELECT a
				    FROM AdsmanagerBundle:AdsmanagerAds a
				    WHERE a.published = 1
    				AND a.expirationDate >= :date
    			    AND a.adLocation = :location'
    	
    	)->setParameter('date',new DateTime())->setParameter('location',$locationCity->getTitle());
    	
    	$ads = $query->getResult();

    	return $this->render('AdsmanagerBundle:Map:ads.html.twig',array("categories"=>$categories,"ads"=>$ads,"location"=>$locationCity,"cities"=>$adCities));
    }
Ejemplo n.º 2
0
    public function showMapAction($idAd,$idCity,Request $request)
    {
    	if(!$this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') ){
    		return $this->redirectToRoute('fos_user_security_login');
    	}
    
    	$city=$this->getDoctrine()
    	->getRepository("AdsmanagerBundle:AdsmanagerCities")->findOneById($idCity);
    
    	$em = $this->getDoctrine()->getManager();
    	$query = $em->createQuery(
    			'SELECT a
				    FROM AdsmanagerBundle:AdsmanagerAds a
				    INNER JOIN a.catid c
				    INNER JOIN AdsmanagerBundle:AdsmanagerCategories b
				    WHERE a.published = 1
    				AND a.expirationDate >= :date
    			    AND a.adLocation = :location
				    AND a.id =:id
				    AND b.id = c.id
				    ORDER BY a.adHeadline ASC
				 '
    
    	)->setParameter('date',new DateTime())->setParameter('location',$city->getTitle())
    	->setParameter('id',$idAd);
    
    	$ads = $query->getResult();
    
    	$cities=new AdsmanagerCities();
    		
    	$adCities=$cities->getAllCities($this->getDoctrine()->getEntityManager());
    
    	$locationCity=$cities->getAdCity($this->getDoctrine()->getEntityManager(),$city->getTitle(),$this);
    
    	$categories=$this->getDoctrine()
    	->getRepository("AdsmanagerBundle:AdsmanagerCategories");
    	$query = $categories->createQueryBuilder('a')
    	->addOrderBy('a.ordering', 'ASC')
    	->getQuery();
    
    	$categories = $query->getResult();
    
    	if(!$ads){
    		return $this->render('AdsmanagerBundle:Ads:dontExits.html.twig',array("categories"=>$categories,"cities"=>$adCities,"location"=>$locationCity,"latitude"=>0,"longitude"=>0));
    	}
    
    	return $this->render('AdsmanagerBundle:Map:ads.html.twig',array("categories"=>$categories,"ads"=>$ads,"location"=>$locationCity,"cities"=>$adCities));
    
    }
    public function searchCategoryAction($idCategory,$idCity,$range,Request $request)
    {
        if(!$this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') ){
            return $this->redirectToRoute('fos_user_security_login');
        }

        $category=$this->getDoctrine()
        ->getRepository("AdsmanagerBundle:AdsmanagerCategories")->findOneById($idCategory);
        
        if($category->getParent() == '0'){
           return $this->forward('AdsmanagerBundle:AdsCategories:show',array('idCategory' => $idCategory, 'idCity' => $idCity, 'range' => $range));
        }
        $city=$this->getDoctrine()
        ->getRepository("AdsmanagerBundle:AdsmanagerCities")->findOneById($idCity);
        
        $ads = $this->getAdsCategory ($city,$idCategory,$range);

        $cities=new AdsmanagerCities();
         
        $adCities=$cities->getAllCities($this->getDoctrine()->getEntityManager());

        $locationCity=$cities->getAdCity($this->getDoctrine()->getEntityManager(),$city->getTitle(),$this);
        
        $categories=$this->getDoctrine()
        ->getRepository("AdsmanagerBundle:AdsmanagerCategories");
        $query = $categories->createQueryBuilder('a')
        ->addOrderBy('a.ordering', 'ASC')
        ->getQuery();
        
        $categories = $query->getResult();
        
        if(!$ads){
            return $this->render('AdsmanagerBundle:Categories:dontExits.html.twig',array("categories"=>$categories,"cities"=>$adCities,"location"=>$locationCity));
        }
        $adsFullData = array();
        foreach ($ads as $ad){
            array_push($ad,$this->getRatedAds($ad['0']));
            array_push($adsFullData,$ad);
        }

        return $this->render('AdsmanagerBundle:Categories:show.html.twig',
                array("categories"=>$categories,"cities"=>$adCities,"location"=>$locationCity,"ads"=>$adsFullData,"category"=>$category,"city"=>$city,"range"=>$range));

    }