本文整理匯總了PHP中AssetFileModel::getTransformSource方法的典型用法代碼示例。如果您正苦於以下問題:PHP AssetFileModel::getTransformSource方法的具體用法?PHP AssetFileModel::getTransformSource怎麽用?PHP AssetFileModel::getTransformSource使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類AssetFileModel
的用法示例。
在下文中一共展示了AssetFileModel::getTransformSource方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: replaceFile
/**
* Replace physical file.
*
* @param AssetFileModel $oldFile The assetFileModel representing the original file.
* @param AssetFileModel $replaceWith The assetFileModel representing the new file.
* @param string $filenameToUse The filename to use for the replaced file. If left
* empty, will use the name of the new file.
*
* @return null
*/
public function replaceFile(AssetFileModel $oldFile, AssetFileModel $replaceWith, $filenameToUse = "")
{
if ($oldFile->kind == 'image') {
craft()->assetTransforms->deleteAllTransformData($oldFile);
$this->deleteSourceFile($oldFile->getFolder()->path . $oldFile->filename);
$this->purgeCachedSourceFile($oldFile->getFolder(), $oldFile->filename);
// For remote sources, fetch the source image and move it in the old ones place
if (!$this->isSourceLocal()) {
if ($replaceWith->kind == 'image') {
$localCopy = $replaceWith->getTransformSource();
IOHelper::copyFile($localCopy, craft()->path->getAssetsImageSourcePath() . $oldFile->id . '.' . IOHelper::getExtension($oldFile->filename));
}
}
}
$newFileName = !empty($filenameToUse) ? $filenameToUse : $oldFile->filename;
$folder = craft()->assets->getFolderById($oldFile->folderId);
$filenameChanges = StringHelper::toLowerCase($newFileName) != StringHelper::toLowerCase($replaceWith->filename);
// If the filename does not change, this can trigger errors in some source types.
if ($filenameChanges) {
$this->moveSourceFile($replaceWith, $folder, $newFileName, true);
}
// Update file info
$oldFile->width = $replaceWith->width;
$oldFile->height = $replaceWith->height;
$oldFile->size = $replaceWith->size;
$oldFile->kind = $replaceWith->kind;
$oldFile->dateModified = $replaceWith->dateModified;
$oldFile->filename = $newFileName;
if (empty($filenameToUse)) {
$replaceWith->filename = $this->getNameReplacement($folder, $replaceWith->filename);
craft()->assets->storeFile($replaceWith);
} else {
// If the file name has not changed, we're reusing the source file,
// so we have to prevent deletion of source file here.
craft()->assets->deleteFiles($replaceWith->id, $filenameChanges);
}
craft()->assets->storeFile($oldFile);
}