public function createAction() { $form = new Admin_Form_User(); $form->user_type->setMultioptions($this->userTypeService->getOptions()); $form->author->setMultioptions(array('' => getGS('None')) + $this->_helper->service('author')->getOptions()); $form->setDefaults(array('is_admin' => $this->_getParam('is_admin', 0), 'is_public' => $this->_getParam('is_public', 0))); $request = $this->getRequest(); if ($request->isPost() && $form->isValid($request->getPost())) { try { $user = $this->userService->save($form->getValues()); $this->_helper->flashMessenger(getGS("User '\$1' created", $user->getUsername())); $this->_helper->redirector('edit', 'user', 'admin', array('user' => $user->getId())); } catch (\InvalidArgumentException $e) { switch ($e->getMessage()) { case 'username_conflict': $form->username->addError(getGS('Username is used already')); break; case 'email_conflict': $form->email->addError(getGS('Email is used already')); break; } } } $this->view->form = $form; }