Example #1
0
 /**
  * Retrieve storage model
  * If storage not defined - retrieve current storage
  *
  * params = array(
  *  connection  => string,  - define connection for model if needed
  *  init        => bool     - force initialization process for storage model
  *  settings    => array    - configuration for storage modules
  * )
  *
  * @param  int|null $storage
  * @param  array $params
  * @return Mage_Core_Model_File_Storage_Abstract | false
  */
 public function getStorageModel($storage = null, $params = array())
 {
     if (is_null($storage)) {
         $storage = Mage::helper('core/file_storage')->getCurrentStorageCode();
     }
     $model = false;
     if ($storage == self::STORAGE_MEDIA_FILE_SYSTEM || $storage == self::STORAGE_MEDIA_DATABASE) {
         return parent::getStorageModel($storage, $params);
     }
     $options = Mage::getConfig()->getNode(self::XML_CONFIG_PATH);
     if (!isset($params['settings'])) {
         $params['settings'] = [];
     }
     $options = Mage::helper('uaudio_storage')->getStorageOptions();
     if (isset($options[$storage])) {
         $model = Mage::getSingleton($options[$storage]['model'], $params['settings']);
     }
     if (!$model) {
         return false;
     }
     if (isset($params['init']) && $params['init']) {
         $model->init();
     }
     return $model;
 }
Example #2
0
 /**
  * test for Mage_Core_Model_File_Storage::getScriptConfig()
  *
  * @magentoConfigFixture current_store system/media_storage_configuration/configuration_update_time 1000
  */
 public function testGetScriptConfig()
 {
     $config = Mage_Core_Model_File_Storage::getScriptConfig();
     $this->assertInternalType('array', $config);
     $this->assertArrayHasKey('media_directory', $config);
     $this->assertArrayHasKey('allowed_resources', $config);
     $this->assertArrayHasKey('update_time', $config);
     $this->assertEquals(Mage::getBaseDir('media'), $config['media_directory']);
     $this->assertInternalType('array', $config['allowed_resources']);
     $this->assertContains('css', $config['allowed_resources']);
     $this->assertContains('css_secure', $config['allowed_resources']);
     $this->assertContains('js', $config['allowed_resources']);
     $this->assertContains('theme', $config['allowed_resources']);
     $this->assertEquals(1000, $config['update_time']);
 }
Example #3
0
 public function getStorageModel($storage = null, $params = [])
 {
     $storageModel = parent::getStorageModel($storage, $params);
     if ($storageModel === false) {
         if (is_null($storage)) {
             $storage = Mage::helper('core/file_storage')->getCurrentStorageCode();
         }
         switch ($storage) {
             case self::STORAGE_MEDIA_S3:
                 /** @var Arkade_S3_Model_Core_File_Storage_S3 $storageModel */
                 $storageModel = Mage::getModel('arkade_s3/core_file_storage_s3');
                 break;
             default:
                 return false;
         }
         if (isset($params['init']) && $params['init']) {
             $storageModel->init();
         }
     }
     return $storageModel;
 }
Example #4
0
    }
    $relativeFilename = str_replace($mediaDirectory . '/', '', $pathInfo);
    checkResource($relativeFilename, $allowedResources);
    sendFile($filePath);
}
/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
if (empty($mediaDirectory)) {
    Mage::init($mageRunCode, $mageRunType);
} else {
    Mage::init($mageRunCode, $mageRunType, array('cache' => array('disallow_save' => true)), array('Mage_Core'));
}
if (!$mediaDirectory) {
    $config = Mage_Core_Model_File_Storage::getScriptConfig();
    $mediaDirectory = str_replace($publicDirectory, '', $config['media_directory']);
    $allowedResources = array_merge($allowedResources, $config['allowed_resources']);
    $relativeFilename = str_replace($mediaDirectory . '/', '', $pathInfo);
    $fp = fopen($configCacheFile, 'w');
    if (flock($fp, LOCK_EX | LOCK_NB)) {
        ftruncate($fp, 0);
        fwrite($fp, json_encode($config));
    }
    flock($fp, LOCK_UN);
    fclose($fp);
    checkResource($relativeFilename, $allowedResources);
}
if (0 !== stripos($pathInfo, $mediaDirectory . '/')) {
    sendNotFoundPage();
}