예제 #1
0
 public function testBannerIsExpired()
 {
     $banner = new Banner();
     $banner->setExpireDate(new \DateTime('now - 1 month'));
     $this->assertTrue($banner->isExpired());
     $banner->setExpireDate(new \DateTime('now + 1 month'));
     $this->assertFalse($banner->isExpired());
 }
 public function getBannerPaymentOrderNumber(Banner $banner, Advertiser $advertiser, Zone $zone = null)
 {
     $items = array();
     $items[] = self::PREFIX_BANNER . $banner->getId();
     $items[] = $advertiser->getId();
     if (null !== $zone) {
         $items[] = $zone->getId();
     }
     $items[] = (int) mt_rand(0, 1000);
     return implode('-', $items);
 }
 /**
  * @Route("/create", name="user_banner_create")
  * @Method("POST")
  * @Template("HyperAdsBundle:User:Banner/add.html.twig")
  */
 public function createAction(Request $request)
 {
     $this->accessDeniedWhenInvalidUser();
     $banner = new Banner();
     $banner->setAdvertiser($this->getUser());
     $bannerType = new BannerType();
     $bannerType->disableDescriptionInput();
     $form = $this->createForm($bannerType, $banner);
     $form->bind($request);
     if ($form->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $banner->upload();
         $em->persist($banner);
         $em->flush();
         return $this->redirect($this->generateUrl('user_banner_list'));
     }
     return array('form' => $form->createView(), 'banner' => $banner, 'wysiwyg' => 'disabled');
 }
 /**
  * @param Banner $banner
  * @return Zone[]
  */
 public function getPossibleZonesForBanner(Banner $banner)
 {
     $query = $this->getEntityManager()->createQuery('SELECT z, b, bzr, p
         FROM Hyper\\AdsBundle\\Entity\\Zone z
         LEFT JOIN z.banners bzr
         LEFT JOIN bzr.banner b
         JOIN z.page p
         WHERE z.maxWidth >= ?1 AND z.maxHeight >= ?2 AND z.enabled = 1 AND z.dailyPrice > 0');
     $query->setParameter(1, $banner->getWidth());
     $query->setParameter(2, $banner->getHeight());
     return $query->getResult();
 }