コード例 #1
0
 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
         }
     }
 }