本文整理汇总了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);
}