Guest User

Untitled

a guest
Nov 11th, 2013
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.69 KB | None | 0 0
  1.    public function processagencyformajaxAction()
  2.     {
  3.         $form       = new AgencyForm();
  4.         $request    = $this->getRequest();
  5.         $response   = $this->getResponse();
  6.        
  7.        
  8.         $messages = array();
  9.         if ($request->isPost()){
  10.             $post = array_merge_recursive(
  11.                 $request->getPost()->toArray(),
  12.                 $request->getFiles()->toArray()
  13.             );
  14.            
  15.             $form->setData($post);
  16.            
  17.             $agencyId = $form->get('id')->getValue();
  18.            
  19.             if($agencyId == 0){
  20.                 $agency         = new Agency();    
  21.                 $agencyFilter   = $agency->getInputFilter();
  22.                
  23.                 //echo 'add mode!';
  24.             }else{
  25.                 //echo 'edit mode!';
  26.                
  27.                 // retrieve existing agency record via repository function
  28.                 $agency = $this->getEntityManager()->getRepository('Portal\Entity\Agency')->find($agencyId);
  29.                
  30.                 // remove 'required' validators from file upload fields
  31.                 $agency->getInputFilter()->get('logoName')->setRequired(false);
  32.                 $agency->getInputFilter()->get('logoName')->setAllowEmpty(true);
  33.                
  34.                 $agency->getInputFilter()->get('cssFilename')->setRequired(false);
  35.                 $agency->getInputFilter()->get('cssFilename')->setAllowEmpty(true);
  36.             }
  37.            
  38.             $form->setInputFilter($agency->getInputFilter());
  39.             if ( ! $form->isValid()) {
  40.                 $errors = $form->getMessages();
  41.                
  42.                 foreach($errors as $fieldName => $errorMessagesArr)
  43.                 {
  44.                     $fieldErrorMessages = '';
  45.                     if (!empty($errorMessagesArr) && $fieldName != 'submit') {
  46.                         foreach($errorMessagesArr as $validationRule => $errorMessage)
  47.                         {
  48.                             //save error(s) per-element that
  49.                             //needed by Javascript
  50.                             //$messages[$fieldName][] = $errorMessage;  
  51.                             $fieldErrorMessages .= ' '.$errorMessage;
  52.                         }
  53.                         $messages[] = array('fieldName' => $fieldName, 'errorMessage' => $fieldErrorMessages);
  54.                        
  55.                         $response->setContent(\Zend\Json\Json::encode($messages));
  56.                     }
  57.                 }
  58.             } else {
  59.                 if ((!empty($post['logoName'])) && (!empty($post['cssFilename']))) {
  60.                    
  61.                     $tempLogoImageName  = $post['logoName']['tmp_name'];
  62.                     $tempCssFilename    = $post['cssFilename']['tmp_name'];
  63.                    
  64.                     $options = array(
  65.                         array(
  66.                             'source'    => $tempLogoImageName,
  67.                             'target'    => \Portal\Entity\Agency::getAgencyLogoPath().$post['logoName']['name'],
  68.                             'randomize' => true
  69.                         ),
  70.                         array(
  71.                             'source'    => $tempCssFilename,
  72.                             'target'    => \Portal\Entity\Agency::getAgencyCSSPath().$post['cssFilename']['name'],
  73.                             'randomize' => true
  74.                         )
  75.                     );
  76.                    
  77.                     ErrorHandler::start();
  78.                     $renameFileFilter = new Rename($options);
  79.  
  80.                     $uploadedLogoFilePath   = $renameFileFilter->filter($tempLogoImageName);
  81.                     $uploadedCssFilePath    = $renameFileFilter->filter($tempCssFilename);
  82.                    
  83.                     ErrorHandler::stop(true);
  84.                    
  85.                     $agency->logoName = basename($uploadedLogoFilePath);
  86.                     $agency->cssFilename = basename($uploadedCssFilePath);
  87.                 }
  88.                
  89.                 //save to db
  90.                 $agency->name           = $post['agencyName'];
  91.                 $agency->applicationUrl = $post['applicationUrl'];
  92.                
  93.                                
  94.                 $this->getEntityManager()->persist($agency);
  95.                 $this->getEntityManager()->flush();
  96.                
  97.                 $response->setContent(\Zend\Json\Json::encode(array('success'=>1)));
  98.             }
  99.         }
  100.          
  101.         return $response;
  102.     }
Advertisement
Add Comment
Please, Sign In to add comment