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; } }