/** * 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; }
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; }