コード例 #1
0
 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;
 }