/** * Edit profile */ public function editAction() { $Profiles = new Application_Model_Profiles(); $this->buildMenu(); $profile_form = new Application_Form_Profile(); $this->view->profile_form = $profile_form; $request = $this->getRequest(); if ($request->isPost() && $profile_form->isValid($_POST)) { Application_Plugin_Common::redirectOnDemoAccount(); $profile = $Profiles->getProfileRow(); // do not foreach this! $profile->screen_name = $profile_form->getValue('screen_name'); $profile->profile_privacy = $profile_form->getValue('profile_privacy'); $profile->save(); $ProfilesMeta = new Application_Model_ProfilesMeta(); $elements = $profile_form->getElements(); $system_elements = array('identifier', 'formsubmit', 'profile_privacy', 'screen_name', 'csrf', 'name', 'email', 'id'); // foreach meta elements foreach ($elements as $element) { $element_id = $element->getId(); $element_value = $element->getValue(); // skip system & readonly fields if (in_array($element_id, $system_elements)) { continue; } // custom date element? if ($element->helper == 'formDate') { if ($element_value) { $dateval = date("Y-m-d H:i:s", strtotime($element_value['day'] . '-' . $element_value['month'] . '-' . $element_value['year'])); $ProfilesMeta->metaUpdate($element_id, $dateval, $profile->id); } else { $ProfilesMeta->deleteProfilesMetaKey($profile->id, $element_id); } continue; } $ProfilesMeta->metaUpdate($element_id, $element_value, $profile->id); } Application_Plugin_Alerts::success($this->view->translate('Profile updated')); // refresh user session Zend_Auth::getInstance()->getStorage()->write($Profiles->getProfileRowObject()); // flush url $this->redirect('editprofile/edit'); } }
public function myProfileAction() { /*--- find user data and populate the edit form ----*/ $userNs = new Zend_Session_Namespace('members'); $userId = $userNs->userId; //$user = unserialize($userNs->userObj); //$userId = $user->getId(); $userM = new Application_Model_User(); $user = $userM->find($userId); $params['firstName'] = $user->getFirstName(); $params['lastName'] = $user->getLastName(); $params['email'] = $user->getEmail(); $params['countryPassport'] = $user->getCountryPassport(); $params['preferredLanguage'] = $user->getPreferredLanguage(); $params['otherLanguages'] = $user->getOtherLanguages(); $params['cityId'] = $user->getCityId(); $params['cityName'] = $user->getCityName(); $arrDob = explode("-", $user->getDob()); if (count($arrDob) > 0) { $params['year'] = $arrDob[0]; $params['month'] = $arrDob[1]; $params['day'] = $arrDob[2]; } $params['sex'] = $user->getSex(); $params['firstTimeTraveller'] = $user->getFirstTimeTraveller(); $params['mobileCountryCode'] = $user->getMobileCountryCode(); $params['mobile'] = $user->getMobile(); $params['dreamDestination'] = $user->getDreamDestination(); $params['wayToTravel'] = $user->getWayToTravel(); $params['travelGear'] = $user->getTravelGear(); $params['yearGoal'] = $user->getYearGoal(); $params['leaveHomeWithout'] = $user->getLeaveHomeWithout(); $params['interests'] = $user->getInterests(); $params['evenTakenGapYear'] = $user->getEvenTakenGapYear(); $params['nextTravelToDoList'] = $user->getNextTravelToDoList(); $params['favouriteTravelExperience'] = $user->getFavouriteTravelExperience(); $this->view->username = $user->getUsername(); /*-------------------------------------------------------*/ $form = new Application_Form_Profile(); $form->populate($params); $elements = $form->getElements(); $form->clearDecorators(); foreach ($elements as $element) { $element->removeDecorator('label'); } if ($this->getRequest()->isPost()) { $params = $this->getRequest()->getPost(); /*---- email validation ----*/ if ($params['email'] != $user->getEmail()) { $form->getElement('email')->addValidators(array(array('Db_NoRecordExists', false, array('table' => 'user', 'field' => 'email', 'messages' => 'Email already exists, Please choose another email address')))); } /*-------------------------*/ /*--- validations for change password -------*/ if (trim($params['currentPassword']) != "") { $params['currentPassword'] = md5($params['currentPassword']); $form->getElement('currentPassword')->addValidators(array(array('Db_RecordExists', false, array('table' => 'user', 'field' => 'password', 'messages' => 'Incorrect current password')))); $form->getElement('password')->setRequired(true); } if (trim($params['password']) != "" && $params['currentPassword'] == "") { $form->getElement('currentPassword')->setRequired(true); $form->getElement('currentPassword')->addValidators(array(array('NotEmpty', false, array('messages' => array('isEmpty' => 'You must enter the current password'))))); } /*--- validations for change password -------*/ if ($form->isValid($params)) { $upload = new Zend_File_Transfer_Adapter_Http(); //---main image if ($upload->isValid('image')) { //unlink existing images if ($user->getImage() != "" && file_exists("media/picture/profile/" . $user->getImage())) { unlink("media/picture/profile/" . $user->getImage()); //main uploaded image unlink("media/picture/profile/thumb_" . $user->getImage()); //thumb image } $upload->setDestination("images/uploads/"); try { $upload->receive('image'); } catch (Zend_File_Transfer_Exception $e) { $msg = $e->getMessage(); } $upload->setOptions(array('useByteString' => false)); $id = $userId; $file_name = $upload->getFileName('image'); $cardImageTypeArr = explode(".", $file_name); $ext = strtolower($cardImageTypeArr[count($cardImageTypeArr) - 1]); $target_file_name = "profile_" . $id . ".{$ext}"; $targetPath = 'media/picture/profile/' . $target_file_name; $filterFileRename = new Zend_Filter_File_Rename(array('target' => $targetPath, 'overwrite' => true)); $filterFileRename->filter($file_name); $params['image'] = $target_file_name; /*--- Generate Thumbnail ---*/ $thumb = Base_Image_PhpThumbFactory::create($targetPath); $thumb->resize(200, 200); $thumb->save($targetPath = 'media/picture/profile/thumb_' . $target_file_name); } //----------- $params['dob'] = $params['year'] . "-" . $params['month'] . "-" . $params['day']; $pass = $user->getPassword(); if (trim($params['password']) != "") { $params['password'] = md5($params['password']); } else { $params['password'] = $pass; } $user->setOptions($params); $user->save(); $this->view->msg = "Profile updated successfully!"; $userNs->userObj = serialize($user); } //$this->_helper->_redirector->gotoUrl($this->view->seoUrl("/gapper/my-profile")); //$this->_redirect($this->view->seoUrl("/gapper/my-profile")); } $this->view->thumbImage = $user->getThumbnail(); $this->view->image_name = $user->getImage(); $this->view->gender = $user->getSex(); $this->view->form = $form; }