コード例 #1
0
 /**
  * Get paths for a local asset
  *
  * @param AssetFileModel $image
  */
 private function _getPathsForLocalAsset(AssetFileModel $image)
 {
     $assetSourcePath = craft()->config->parseEnvironmentString($image->getSource()->settings['url']);
     if (strrpos($assetSourcePath, 'http') !== false) {
         $parsedUrl = parse_url($assetSourcePath);
         $assetSourcePath = $parsedUrl['path'];
     }
     $this->sourcePath = ImagerService::fixSlashes(craft()->config->parseEnvironmentString($image->getSource()->settings['path']) . $image->getFolder()->path);
     $this->targetPath = ImagerService::fixSlashes(craft()->imager->getSetting('imagerSystemPath') . $assetSourcePath . $image->getFolder()->path) . $image->id . '/';
     $this->targetUrl = craft()->imager->getSetting('imagerUrl') . ImagerService::fixSlashes($assetSourcePath . $image->getFolder()->path, true) . $image->id . '/';
     $this->sourceFilename = $this->targetFilename = $image->filename;
 }
コード例 #2
0
ファイル: AssetsHelper.php プロジェクト: jmstan/craft-website
 /**
  * Generate a URL for a given Assets file in a Source Type.
  *
  * @param BaseAssetSourceType $sourceType
  * @param AssetFileModel      $file
  *
  * @return string
  */
 public static function generateUrl(BaseAssetSourceType $sourceType, AssetFileModel $file)
 {
     $baseUrl = $sourceType->getBaseUrl();
     $folderPath = $file->getFolder()->path;
     $fileName = $file->filename;
     $appendix = static::getUrlAppendix($sourceType, $file);
     return $baseUrl . $folderPath . $fileName . $appendix;
 }
コード例 #3
0
 /**
  * Get a file's S3 path.
  *
  * @param AssetFileModel $file
  * @param                $settings The source settings to use.
  *
  * @return string
  */
 private function _getS3Path(AssetFileModel $file, $settings = null)
 {
     $folder = $file->getFolder();
     return $this->_getPathPrefix($settings) . $folder->path . $file->filename;
 }
コード例 #4
0
 /**
  * Finalize a file transfer between sources for the provided file.
  *
  * @param AssetFileModel $file The assetFileModel representing the file we're finalizing the transfer for.
  *
  * @return null
  */
 public function finalizeTransfer(AssetFileModel $file)
 {
     $this->deleteSourceFile($file->getFolder()->path . $file->filename);
 }
コード例 #5
0
 /**
  * Get a file's system path.
  *
  * @param AssetFileModel $file
  *
  * @return string
  */
 private function _getFileSystemPath(AssetFileModel $file)
 {
     $folder = $file->getFolder();
     $fileSourceType = craft()->assetSources->getSourceTypeById($file->sourceId);
     return $this->getSourceFileSystemPath($fileSourceType) . $folder->path . $file->filename;
 }
コード例 #6
0
 /**
  * Return true if a transform exists at the location for a file.
  *
  * @param AssetFileModel $file
  * @param $location
  * @return mixed
  */
 public function transformExists(AssetFileModel $file, $location)
 {
     $this->_prepareForRequests();
     return (bool) @$this->_s3->getObjectInfo($this->getSettings()->bucket, $this->_getPathPrefix() . $file->getFolder()->fullPath . $location . '/' . $file->filename);
 }
コード例 #7
0
 /**
  * Get URL for a transform by File Model and transform.
  *
  * @param AssetFileModel $file
  * @param $transform
  * @return string
  */
 public function getUrlforTransformByFile($file, $transform)
 {
     // Create URL to the image
     $sourceType = craft()->assetSources->getSourceTypeById($file->sourceId);
     $baseUrl = $sourceType->getBaseUrl();
     $folderPath = $baseUrl . $file->getFolder()->fullPath;
     $transformPath = $this->getTransformSubpath($transform);
     return $folderPath . $transformPath . $file->filename;
 }
コード例 #8
0
 /**
  * Get URL for a file.
  *
  * @param AssetFileModel $file
  * @param $transform
  * @return string
  */
 public function getUrlForFile(AssetFileModel $file, $transform = null)
 {
     $returnPlaceholder = false;
     if (!$transform || !in_array(IOHelper::getExtension($file->filename), ImageHelper::getAcceptedExtensions())) {
         $sourceType = craft()->assetSources->getSourceTypeById($file->sourceId);
         $base = $sourceType->getBaseUrl();
         return $base . $file->getFolder()->fullPath . $file->filename;
     }
     // Get the transform index model
     $existingTransformData = craft()->assetTransforms->getTransformIndex($file, $transform);
     // Does the file actually exist?
     if ($existingTransformData->fileExists) {
         return craft()->assetTransforms->getUrlforTransformByFile($file, $transform);
     } else {
         // File doesn't exist yet - load the TransformLoader and set the placeholder URL flag
         $placeholderUrl = UrlHelper::getResourceUrl('images/blank.gif');
         if (!$this->_includedTransformLoader) {
             $entityPlaceholderUrl = htmlspecialchars($placeholderUrl, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
             $spinnerUrl = UrlHelper::getResourceurl('images/spinner_transform.gif');
             $actionUrl = UrlHelper::getActionUrl('assets/generateTransform');
             craft()->templates->includeJsResource('js/TransformLoader.js');
             craft()->templates->includeJs('new TransformLoader(' . JsonHelper::encode($placeholderUrl) . ', ' . JsonHelper::encode($entityPlaceholderUrl) . ', ' . JsonHelper::encode($spinnerUrl) . ', ' . JsonHelper::encode($actionUrl) . ');');
             $this->_includedTransformLoader = true;
         }
         return $placeholderUrl . '#' . $existingTransformData->id;
     }
 }
コード例 #9
0
 /**
  * Get a file's S3 path.
  *
  * @param AssetFileModel $file
  *
  * @return string
  */
 private function _getRackspacePath(AssetFileModel $file)
 {
     $folder = $file->getFolder();
     return $this->_getPathPrefix() . $folder->path . $file->filename;
 }
コード例 #10
0
 /**
  * @param AssetFileModel $asset
  *
  * @return string
  */
 protected function getAssetFilePath(AssetFileModel $asset)
 {
     return $asset->getSource()->getSourceType()->getBasePath() . $asset->getFolder()->path . $asset->filename;
 }
コード例 #11
0
 /**
  * Return true if a transform exists at the location for a file.
  *
  * @param AssetFileModel $file
  * @param $location
  * @return mixed
  */
 public function transformExists(AssetFileModel $file, $location)
 {
     return (bool) $this->_getObjectInfo($this->_getPathPrefix() . $file->getFolder()->fullPath . $location . '/' . $file->filename);
 }
コード例 #12
0
 /**
  * Copy a transform for a file from source location to target location.
  *
  * @param AssetFileModel $file
  * @param $source
  * @param $target
  * @return mixed
  */
 public function copyTransform(AssetFileModel $file, $source, $target)
 {
     $fileFolder = $file->getFolder();
     $basePath = $this->_getSourceFileSystemPath() . $fileFolder->fullPath;
     IOHelper::copyFile($basePath . $source . '/' . $file->filename, $basePath . $target . '/' . $file->filename);
 }