public function editAction() { $id = $this->_getParam('id'); $this->view->user_id = $id; $model1 = new Application_Model_User(); $model = $model1->find($id); $options['firstName'] = $model->getFirstName(); $options['lastName'] = $model->getLastName(); $options['email'] = $model->getEmail(); $options['countryPassport'] = $model->getCountryPassport(); $options['preferredLanguage'] = $model->getPreferredLanguage(); $options['otherLanguages'] = $model->getOtherLanguages(); $options['cityId'] = $model->getCityId(); $options['cityName'] = $model->getCityName(); $arrDob = explode("-", $model->getDob()); if (count($arrDob) > 0) { $options['year'] = $arrDob[0]; $options['month'] = $arrDob[1]; $options['day'] = $arrDob[2]; } $options['sex'] = $model->getSex(); $options['firstTimeTraveller'] = $model->getFirstTimeTraveller(); $options['mobileCountryCode'] = $model->getMobileCountryCode(); $options['mobile'] = $model->getMobile(); $options['dreamDestination'] = $model->getDreamDestination(); $options['wayToTravel'] = $model->getWayToTravel(); $options['travelGear'] = $model->getTravelGear(); $options['yearGoal'] = $model->getYearGoal(); $options['leaveHomeWithout'] = $model->getLeaveHomeWithout(); $options['interests'] = $model->getInterests(); $options['evenTakenGapYear'] = $model->getEvenTakenGapYear(); $options['nextTravelToDoList'] = $model->getNextTravelToDoList(); $options['favouriteTravelExperience'] = $model->getFavouriteTravelExperience(); $options['userLevelId'] = $model->getUserLevelId(); $this->view->username = $model->getUsername(); $request = $this->getRequest(); $form = new Admin_Form_User(); //remove fields do not need to display in Edit $form->removeElement('username'); $form->removeElement('password'); $form->removeElement('confirmPassword'); $form->populate($options); $options = $request->getPost(); if ($request->isPost()) { /*---- email validation ----*/ if ($options['email'] != $model->getEmail()) { $form->getElement('email')->addValidators(array(array('Db_NoRecordExists', false, array('table' => 'user', 'field' => 'email', 'messages' => 'Email already exists, Please choose another email address.')))); } /*-------------------------*/ if ($form->isValid($options)) { /*--------- Upload image START -------------------------*/ $upload = new Zend_File_Transfer_Adapter_Http(); if ($upload->isValid('image')) { //unlink existing images if (file_exists("media/picture/profile/" . $model->getImage())) { unlink("media/picture/profile/" . $model->getImage()); //main uploaded image unlink("media/picture/profile/thumb_" . $model->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)); $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); $options['image'] = $target_file_name; /*--- Generate Thumbnail ---*/ $thumb = Base_Image_PhpThumbFactory::create($targetPath); $thumb->resize(100, 100); $thumb->save($targetPath = 'media/picture/profile/thumb_' . $target_file_name); } /*--------- Upload image END -------------------------*/ $options['dob'] = $options['year'] . "-" . $options['month'] . "-" . $options['day']; $model->setOptions($options); $model->save(); $this->view->msg = "'User information has been updated successfully!"; } else { $form->reset(); $form->populate($options); } } $this->view->thumbImage = $model->getThumbnail(); $this->view->image_name = $model->getImage(); $this->view->form = $form; }