/** * Редактирование собственного профиля * * @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/'); } }