Ejemplo n.º 1
0
 /**
  * Редактирование собственного профиля 
  * 
  * @return void
  */
 public function profileAction()
 {
     if ($this->_usersession->UserData['userid'] > 0 && ($UserInfo = $this->User->getUserInfo(array('userid' => $this->_usersession->UserData['userid'])))) {
         $form = $this->User->getProfileForm();
         $form->setDefaults($UserInfo);
         if ($this->_request->isPost()) {
             $FormData = $this->_request->getPost();
             // Нередактируемые поля
             $FormData['userid'] = $UserInfo['userid'];
             $FormData['username'] = $UserInfo['username'];
             if ($form->isValid($FormData)) {
                 $FormData = $form->getValues();
                 unset($FormData['signed'], $FormData['lastvisit']);
                 if ($FormData = $this->User->saveUserInfo($FormData)) {
                     $this->User->_usersession->UserData = $this->User->getUserInfo(array('userid' => $FormData['userid']));
                     return $this->composeSuccessMessage('Изменения внесены', '/users/profile/');
                 } else {
                     $this->composeTransactionErrorMessage($this->User->_errors);
                 }
             }
         }
         $this->view->assign('Form', $form);
     } else {
         return $this->composeErrorMessage('Пользователь с указанным Id не найден', '/users/');
     }
 }