public function show(Pap_Db_CachedBanner $cachedBanner) { try { $request = new Pap_Tracking_Request(); $banner = $this->getBanner($cachedBanner->getBannerId(), $cachedBanner->getUserId(), $cachedBanner->getChannel()); $req = new Pap_Tracking_BannerViewerRequest($banner->getBannerType()); Gpf_Plugins_Engine::extensionPoint(self::EXT_POINT_NAME, $req); if($req->getViewer() != null) { $req->getViewer()->showBanner($request , $banner); return; } $this->prepareCachedBanner($banner, $cachedBanner); try { $cachedBanner->save(); } catch (Gpf_DbEngine_Row_ConstraintException $e) { // cached banner was saved already by other script } if ($cachedBanner->getHeaders() != '') { header($cachedBanner->getHeaders(), true); } echo $cachedBanner->getCode(); } catch (Exception $e) { $this->logMessage($e); echo $e; } }
public function fillCachedBanner(Pap_Db_CachedBanner $cachedBanner, Pap_Common_User $user) { $this->parseRotatorBannerDescription(); $bannerIdToShow = $this->getBannerIdToShow(); foreach ($this->rotatedBanners as $row) { $bannerId = $row->get(Pap_Db_Table_BannersInRotators::ROTATED_BANNER_ID); $rank = $row->get(Pap_Db_Table_BannersInRotators::RANK); $banner = $this->bannerFactory->getBanner($bannerId); $banner->setParentBannerId($this->getId()); $this->setBannerChannel($banner, $cachedBanner->getChannel()); if ($bannerIdToShow == $bannerId) { $cachedBanner->setCode($banner->getCompleteCode($user, '')); $cachedBanner->setRank($rank); $cachedBanner->setValidFrom($row->get(Pap_Db_Table_BannersInRotators::VALID_FROM)); $cachedBanner->setValidUntil($row->get(Pap_Db_Table_BannersInRotators::VALID_UNTIL)); continue; } $rotCachedBanner = clone $cachedBanner; $rotCachedBanner->setValidFrom($row->get(Pap_Db_Table_BannersInRotators::VALID_FROM)); $rotCachedBanner->setValidUntil($row->get(Pap_Db_Table_BannersInRotators::VALID_UNTIL)); $rotCachedBanner->setCode($banner->getCompleteCode($user, '')); Pap_Tracking_BannerViewer::addJavascriptCode($rotCachedBanner); $rotCachedBanner->setRank($rank); try { $rotCachedBanner->save(); } catch (Gpf_DbEngine_Row_ConstraintException $e) { // cached banner was saved already by other script } } }