Пример #1
0
 /**
  * This methods overwrites Mage_Adminhtml_Model_System_Config_Backend_File::_beforeSave
  * in a bad way, just because the "$uploader = new class".
  * 
  * @param Mage_Adminhtml_Model_System_Config_Backend_File $model
  * @param type $uploadDir
  * @param type $allowedExtensions
  * @return Mage_Adminhtml_Model_System_Config_Backend_File
  */
 public function systemConfigBackendFileBeforeSave(Mage_Adminhtml_Model_System_Config_Backend_File $model, $uploadDir, $allowedExtensions)
 {
     $value = $model->getValue();
     if ($_FILES['groups']['tmp_name'][$model->getGroupId()]['fields'][$model->getField()]['value']) {
         try {
             $file = array();
             $tmpName = $_FILES['groups']['tmp_name'];
             $file['tmp_name'] = $tmpName[$model->getGroupId()]['fields'][$model->getField()]['value'];
             $name = $_FILES['groups']['name'];
             $file['name'] = $name[$model->getGroupId()]['fields'][$model->getField()]['value'];
             $uploader = new MageFM_CDN_Model_Uploader($file);
             $uploader->setAllowedExtensions($allowedExtensions);
             $uploader->setAllowRenameFiles(true);
             $uploader->addValidateCallback('size', $model, 'validateMaxSize');
             $result = $uploader->save($uploadDir);
         } catch (Exception $e) {
             Mage::throwException($e->getMessage());
             return $model;
         }
         $filename = $result['file'];
         if ($filename) {
             $filename = $model->prependScopeInfo($filename);
             $model->setValue($filename);
         }
     } else {
         if (is_array($value) && !empty($value['delete'])) {
             $model->setValue('');
         } else {
             $model->unsValue();
         }
     }
     return $model;
 }