* @version SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $ */ class bannersActions extends sfActions { public function executeList(sfWebRequest $request) { $this->filter = new BannerFormFilter(); $this->filter->bind($request->getParameter($this->filter->getName())); $this->pager = new sfDoctrinePager('Banner'); $this->pager->setMaxPerPage($request->getParameter('pagesize', sfConfig::get('app_default_pagesize'))); $this->pager->setPage($request->getParameter('page', 1)); $query = $this->filter->getQuery(); $this->pager->setQuery($query); $this->pager->init(); } public function executeCreate(sfWebRequest $request) { $this->form = new BannerForm(); $this->processForms($request); $this->setTemplate('edit'); } public function executeUpdate(sfWebRequest $request) { $this->forward404Unless($this->banner = $this->getRoute()->getObject()); $this->form = new BannerForm($this->banner); $this->processForms($request); $this->setTemplate('edit'); } protected function processForms(sfWebRequest $request) { if($request->isMethod('post') || $request->isMethod('put')) { $data = $request->getParameter($this->form->getName()); $this->form->bind($data, $request->getFiles($this->form->getName())); if($this->form->isValid()) { $this->banner = $this->form->save(); $this->getUser()->addMessage('Banner uložen.'); $this->redirect($this->generateUrl('banners_list')); } } } public function executeDelete(sfWebRequest $request) { $this->forward404Unless($this->banner = $this->getRoute()->getObject()); $this->banner->delete(); $this->getUser()->addMessage('Banner odstraněn.'); $this->redirect($request->getReferer()); } public function executeRead(sfWebRequest $request) { $this->forward404Unless($this->banner = $this->getRoute()->getObject()); $this->pager = new sfDoctrinePager('BannerClick'); $this->pager->setMaxPerPage($request->getParameter('pagesize', sfConfig::get('app_default_pagesize'))); $query = Doctrine::getTable('BannerClick')->createQuery() ->addWhere('banner_id = ?', $this->banner->getId()) ->orderBy('created_at DESC'); $this->pager->setQuery($query); $this->pager->init(); } }