/** * 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; }
/** * 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; }
/** * 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; }
/** * 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); }
/** * 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; }
/** * 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); }
/** * 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; }
/** * 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; } }
/** * 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; }
/** * @param AssetFileModel $asset * * @return string */ protected function getAssetFilePath(AssetFileModel $asset) { return $asset->getSource()->getSourceType()->getBasePath() . $asset->getFolder()->path . $asset->filename; }
/** * 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); }
/** * 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); }