Advertisement
zigojacko

PageController (saveAction function)

Jun 19th, 2014
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.37 KB | None | 0 0
  1.     public function saveAction()
  2.     {
  3.         $id     = $this->getRequest()->getParam('id');
  4.         $model  = Mage::getModel('amshopby/page');
  5.        
  6.         $data   = $this->getRequest()->getPost();
  7.         if (!$data) {
  8.        
  9.         }
  10.        
  11.         //upload images
  12.         $path = Mage::getBaseDir('media') . DS . 'amshopby' . DS;
  13.         $imagesTypes = array('big', 'small', 'medium', 'small_hover', 'page');
  14.         foreach ($imagesTypes as $type){
  15.             $field = 'img_' . $type;
  16.            
  17.             $isRemove = isset($data['remove_' . $field]);
  18.             $hasNew   = !empty($_FILES[$field]['name']);
  19.            
  20.             try {
  21.                 // remove the old file
  22.                 if ($isRemove || $hasNew){
  23.                     $oldName = $model->getData($field);
  24.                     if ($oldName){
  25.                          @unlink($path . $oldName);
  26.                          $data[$field] = '';
  27.                     }
  28.                 }
  29.    
  30.                 // upload a new if any
  31.                 if (!$isRemove && $hasNew){
  32.                     $newName = $type . $id;
  33.                     $newName .= '.' . strtolower(substr(strrchr($_FILES[$field]['name'], '.'), 1));
  34.                
  35.                     $uploader = new Varien_File_Uploader($field);
  36.                     $uploader->setFilesDispersion(false);
  37.                     $uploader->setAllowRenameFiles(false);
  38.                     $uploader->setAllowedExtensions(array('png','gif', 'jpg', 'jpeg'));
  39.                     $uploader->save($path, $newName);
  40.                     $data[$field] = $newName;            
  41.                 }  
  42.             }
  43.            
  44.             catch (Exception $e) {
  45.                 Mage::getSingleton('adminhtml/session')->addError($e->getMessage());    
  46.             }
  47.         }
  48.        
  49.         try {
  50.             $model->setData($data)->setId($id);
  51.            
  52.             $this->prepareForSave($model);
  53.                
  54.             $cond = array();
  55.             for ($i=0; $i < $model->getNum(); ++$i){
  56.                 $cond[] = array(
  57.                     'attribute_code' => $model->getData('attr_' . $i),
  58.                     'attribute_value' => $model->getData('option_' . $i)
  59.                 );
  60.             }
  61.            
  62.             $model->setCond(serialize($cond));
  63.            
  64.             $model->save();
  65.             Mage::getSingleton('adminhtml/session')->setFormData(false);
  66.            
  67.             $msg = Mage::helper('amshopby')->__('Page has been successfully saved');
  68.             Mage::getSingleton('adminhtml/session')->addSuccess($msg);
  69.             if ($this->getRequest()->getParam('continue')){
  70.                 $this->_redirect('*/*/edit', array('id' => $model->getId()));
  71.             }
  72.             else {
  73.                 $this->_redirect('*/*');
  74.             }
  75.         }
  76.         catch (Exception $e) {
  77.             Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
  78.             Mage::getSingleton('adminhtml/session')->setFormData($data);
  79.             $this->_redirect('*/*/edit', array('id' => $id));
  80.         }
  81.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement