* @version SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $ */ class usersActions extends sfActions { public function executeList(sfWebRequest $request) { $this->userFilter = new sfGuardUserFormFilter(); $this->userFilter->bind($request->getParameter($this->userFilter->getName())); $this->pager = new sfDoctrinePager('sfGuardUser'); $this->pager->setMaxPerPage($request->getParameter('pagesize', sfConfig::get('app_default_pagesize'))); $this->pager->setPage($request->getParameter('page', 1)); $query = $this->userFilter->getQuery(); $this->pager->setQuery($query); $this->pager->init(); $this->url = $this->generateUrl('users_list'); } public function executeCreate(sfWebRequest $request) { $this->userForm = new sfGuardUserForm(); $this->addressForm = new AddressForm(); $this->processForms($request); $this->setTemplate('edit'); } public function executeUpdate(sfWebRequest $request) { $this->forward404Unless($this->user = $this->getRoute()->getObject()); $this->userForm = new sfGuardUserForm($this->user); if($this->user->hasAddress()) { $this->addressForm = new AddressForm($this->user->getAddress()); } else { $this->addressForm = new AddressForm(); } $this->processForms($request); $this->setTemplate('edit'); } protected function processForms(sfWebRequest $request) { if($request->isMethod('post') || $request->isMethod('put')) { $user_data = $request->getParameter($this->userForm->getName()); $this->userForm->bind($user_data); $address_data = $request->getParameter($this->addressForm->getName()); $this->addressForm->bind($address_data); if($this->userForm->isValid() && $this->addressForm->isValid()) { $this->user = $this->userForm->save(); $address_data['user_id'] = $this->user->getId(); $this->addressForm->bind($address_data); $this->address = $this->addressForm->save(); $this->getUser()->addMessage('Uživatel uložen.'); $this->redirect($this->generateUrl('users_list')); } } } public function executeDelete(sfWebRequest $request) { $this->forward404Unless($this->user = $this->getRoute()->getObject()); $this->user->delete(); $this->getUser()->addMessage('Uživatel odstraněn.'); $this->redirect($this->generateUrl('users_list')); } }