* @version SVN: $Id: Builder.php 7490 2010-03-29 19:53:27Z jwage $ */ class Banner extends BaseBanner { const UPLOAD_PATH = '/uploads/banners'; public function __toString() { return $this->getType()->getName().' - '.$this->getNote(); } public function getSrc($withHash = false) { $src = self::UPLOAD_PATH.'/'.$this->getFilename(); if($withHash) { $src .= '?'.md5_file($this->getPath($type)); } return $src; } public function getPath() { return sfConfig::get('sf_upload_dir').DIRECTORY_SEPARATOR.'banners'.DIRECTORY_SEPARATOR.$this->getFilename(); } /** * * @return boolean */ public function existsFile() { return strlen($this->getFilename()) == 0 ? false : file_exists($this->getPath()); } public function delete(Doctrine_Connection $conn = null) { if($this->existsFile()) { unlink($this->getPath()); } parent::delete($conn); } public function createView(sfWebRequest $request) { $this->setViewsCount($this->getViewsCount() + 1); $this->save(); } public function createClick(sfWebRequest $request) { $this->setClicksCount($this->getClicksCount() + 1); $this->save(); $click = new BannerClick(); $click->setBannerId($this->getId()); $click->setIp($request->getHttpHeader('addr','remote')); $click->setUrl($request->getReferer()); $click->setUserAgent($request->getHttpHeader('user_agent')); $click->save(); } public function isFlash() { return $this->getExtension() == 'swf'; } public function getExtension() { $info = pathinfo($this->getPath()); return $info['extension']; } public function hasProfile() { return !is_null($this->getProfileId()); } }