* @version SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $ */ class bulletinActions extends sfActions { public function executeList(sfWebRequest $request) { $query = Doctrine::getTable('Bulletin')->createQuery() ->addOrderBy('created_at DESC'); $this->pager = new sfDoctrinePager( 'Bulletin', $request->getParameter('pagesize', sfConfig::get('app_default_pagesize')) ); $this->pager->setQuery($query); $this->pager->setPage($request->getParameter('page', 1)); $this->pager->init(); } public function executeCreate(sfWebRequest $request) { $this->form = new BulletinForm(); if($request->isMethod('post')) { $this->processBulletinForm($request, $this->form); } $this->setTemplate('edit'); } public function executeUpdate(sfWebRequest $request) { $this->forward404Unless($this->bulletin = $this->getRoute()->getObject()); $this->form = new BulletinForm($this->bulletin); if($request->isMethod('put')) { $this->processBulletinForm($request, $this->form); } $this->setTemplate('edit'); } protected function processBulletinForm(sfWebRequest $request, BulletinForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if($form->isValid()) { $bulletin = $form->save(); $this->getUser()->addMessage('Pdf Zvz uložena'); $this->redirect($this->generateUrl('bulletin_update', $bulletin)); } } public function executeDelete(sfWebRequest $request) { $this->forward404Unless($this->bulletin = $this->getRoute()->getObject()); $this->forward404Unless($this->bulletin->isDeletable()); $this->bulletin->delete(); $this->getUser()->addMessage('PDF smazáno'); $this->redirect($request->getReferer()); } public function executeSubscribers(sfWebRequest $request) { $query = Doctrine::getTable('Subscriber')->createQuery() ->addOrderBy('created_at DESC'); $this->pager = new sfDoctrinePager( 'Subscriber', $request->getParameter('pagesize', sfConfig::get('app_default_pagesize')) ); if($request->getParameter('export-excel', false)) { $this->pager->setPage(1); $this->pager->setMaxPerPage($query->count()); $this->setTemplate('excel'); $this->setLayout(false); $this->getResponse()->setContentType('application/ms-excel'); $this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename=zvz-export-odberatele-pdf.xls'); } $this->pager->setQuery($query); $this->pager->setPage($request->getParameter('page', 1)); $this->pager->init(); } public function executeUpdateSubscriber(sfWebRequest $request) { $this->forward404Unless($this->subscriber = $this->getRoute()->getObject()); $this->form = new SubscriberForm($this->subscriber); if($request->isMethod('put')) { $this->processSubscriberForm($request, $this->form); } $this->setTemplate('editSubscriber'); } protected function processSubscriberForm(sfWebRequest $request, SubscriberForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if($form->isValid()) { $subscriber = $form->save(); $this->getUser()->addMessage('Odběratel uložen.'); $this->redirect($this->generateUrl('bulletin_subscribers', $subscriber)); } } public function executeDeleteSubscriber(sfWebRequest $request) { $this->forward404Unless($this->subscriber = $this->getRoute()->getObject()); $this->subscriber->delete(); $this->getUser()->addMessage('Odběratel smazán'); $this->redirect($request->getReferer()); } }