Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions routes/actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
use CraftCms\Cms\Http\Controllers\PreviewController;
use CraftCms\Cms\Http\Controllers\Settings\EntryTypesController;
use CraftCms\Cms\Http\Controllers\Settings\FilesystemsController;
use CraftCms\Cms\Http\Controllers\Settings\ImageTransformsController;
use CraftCms\Cms\Http\Controllers\Settings\RoutesController;
use CraftCms\Cms\Http\Controllers\Settings\SectionsController;
use CraftCms\Cms\Http\Controllers\Settings\UserGroupsController;
Expand Down Expand Up @@ -308,6 +309,8 @@
Route::post('volumes/save-volume', [VolumesController::class, 'save']);
Route::post('volumes/delete-volume', [VolumesController::class, 'delete']);
Route::post('volumes/reorder-volumes', [VolumesController::class, 'reorder']);
Route::post('image-transforms/save', [ImageTransformsController::class, 'save']);
Route::post('image-transforms/delete', [ImageTransformsController::class, 'delete']);
});

// Plugins
Expand Down
4 changes: 4 additions & 0 deletions routes/cp.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
use CraftCms\Cms\Http\Controllers\Settings\EntryTypesController;
use CraftCms\Cms\Http\Controllers\Settings\FilesystemsController;
use CraftCms\Cms\Http\Controllers\Settings\GeneralSettingsController;
use CraftCms\Cms\Http\Controllers\Settings\ImageTransformsController;
use CraftCms\Cms\Http\Controllers\Settings\RoutesController;
use CraftCms\Cms\Http\Controllers\Settings\SectionsController;
use CraftCms\Cms\Http\Controllers\Settings\SettingsIndexController;
Expand Down Expand Up @@ -164,6 +165,9 @@
Route::get('settings/assets', [VolumesController::class, 'index']);
Route::middleware(RequireAdminChanges::class)->get('settings/assets/volumes/new', [VolumesController::class, 'create']);
Route::get('settings/assets/volumes/{volumeId}', [VolumesController::class, 'edit'])->whereNumber('volumeId');
Route::get('settings/assets/transforms', [ImageTransformsController::class, 'index']);
Route::middleware(RequireAdminChanges::class)->get('settings/assets/transforms/new', [ImageTransformsController::class, 'create']);
Route::get('settings/assets/transforms/{transformHandle}', [ImageTransformsController::class, 'edit']);

// Sites
Route::get('settings/sites', [SitesController::class, 'index'])
Expand Down
4 changes: 2 additions & 2 deletions src/Asset/AssetIndexer.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use craft\helpers\Db as DbHelper;
use craft\helpers\FileHelper;
use craft\helpers\Image;
use craft\helpers\ImageTransforms;
use CraftCms\Cms\Asset\Data\AssetIndexEntry;
use CraftCms\Cms\Asset\Data\IndexingSession;
use CraftCms\Cms\Asset\Data\Volume;
Expand All @@ -25,6 +24,7 @@
use CraftCms\Cms\Cms;
use CraftCms\Cms\Database\Table;
use CraftCms\Cms\Filesystem\Data\FsListing;
use CraftCms\Cms\Image\ImageTransformHelper;
use CraftCms\Cms\Support\Json;
use CraftCms\Cms\Support\Str;
use DateTime;
Expand Down Expand Up @@ -678,7 +678,7 @@ public function indexFileByEntry(

if ($shouldCache && $tempPath) {
$targetPath = $asset->getImageTransformSourcePath();
ImageTransforms::storeLocalSource($tempPath, $targetPath);
ImageTransformHelper::storeLocalSource($tempPath, $targetPath);
FileHelper::unlink($tempPath);
}
} else {
Expand Down
7 changes: 3 additions & 4 deletions src/Asset/Assets.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
use craft\helpers\DateTimeHelper;
use craft\helpers\FileHelper;
use craft\helpers\Image;
use craft\imagetransforms\FallbackTransformer;
use craft\models\ImageTransform;
use CraftCms\Cms\Asset\Contracts\AssetPreviewHandlerInterface;
use CraftCms\Cms\Asset\Data\VolumeFolder;
use CraftCms\Cms\Asset\Elements\Asset;
Expand All @@ -29,6 +27,8 @@
use CraftCms\Cms\Element\Queries\AssetQuery;
use CraftCms\Cms\Filesystem\Contracts\FsInterface;
use CraftCms\Cms\Filesystem\Filesystems\Temp;
use CraftCms\Cms\Image\Data\ImageTransform;
use CraftCms\Cms\Image\FallbackTransformer;
use CraftCms\Cms\Support\Env;
use CraftCms\Cms\Support\Facades\Filesystems;
use CraftCms\Cms\Support\Str;
Expand Down Expand Up @@ -143,8 +143,7 @@ public function getThumbUrl(Asset $asset, int $width, ?int $height = null, bool
return $iconFallback ? AssetsHelper::iconUrl($extension) : null;
}

$transform = Craft::createObject([
'class' => ImageTransform::class,
$transform = Craft::createObject(ImageTransform::class, [
'width' => $width,
'height' => $height,
'mode' => 'crop',
Expand Down
2 changes: 1 addition & 1 deletion src/Asset/Commands/Concerns/IndexesAssets.php
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ function () use ($craft, $assetIds) {
$assets = Asset::find()->id($assetIds)->get();

foreach ($assets as $asset) {
$craft->getImageTransforms()->deleteCreatedTransformsForAsset($asset);
app(\CraftCms\Cms\Image\ImageTransforms::class)->deleteCreatedTransformsForAsset($asset);
$asset->keepFileOnDelete = true;
$craft->getElements()->deleteElement($asset);
}
Expand Down
29 changes: 15 additions & 14 deletions src/Asset/Elements/Asset.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@
use craft\helpers\ElementHelper;
use craft\helpers\FileHelper;
use craft\helpers\Image;
use craft\helpers\ImageTransforms;
use craft\helpers\Template;
use craft\helpers\UrlHelper;
use craft\models\ImageTransform;
use craft\services\ElementSources;
use craft\validators\AssetLocationValidator;
use CraftCms\Aliases\Aliases;
Expand Down Expand Up @@ -60,6 +58,9 @@
use CraftCms\Cms\FieldLayout\FieldLayout;
use CraftCms\Cms\Filesystem\Exceptions\FilesystemException;
use CraftCms\Cms\Filesystem\Filesystems\Filesystem;
use CraftCms\Cms\Image\Data\ImageTransform;
use CraftCms\Cms\Image\ImageTransformHelper;
use CraftCms\Cms\Image\ImageTransforms;
use CraftCms\Cms\Search\SearchQuery;
use CraftCms\Cms\Search\SearchQueryTerm;
use CraftCms\Cms\Search\SearchQueryTermGroup;
Expand Down Expand Up @@ -1186,7 +1187,7 @@ public function __isset($name): bool
return true;
}

return (bool) Craft::$app->getImageTransforms()->getTransformByHandle($name);
return (bool) app(ImageTransforms::class)->getTransformByHandle($name);
}

/**
Expand Down Expand Up @@ -1214,7 +1215,7 @@ public function __get($name)
/** @phpstan-ignore catch.neverThrown */
} catch (UnknownPropertyException|\CraftCms\Cms\Component\Exceptions\UnknownPropertyException $e) {
// Is $name a transform handle?
if (($transform = Craft::$app->getImageTransforms()->getTransformByHandle($name)) !== null) {
if (($transform = app(ImageTransforms::class)->getTransformByHandle($name)) !== null) {
return $this->copyWithTransform($transform);
}

Expand Down Expand Up @@ -1758,7 +1759,7 @@ public function getUrlsBySize(array $sizes, mixed $transform = null): array
($transform !== null || $this->_transform) &&
Image::canManipulateAsImage($this->getExtension())
) {
$transform = ImageTransforms::normalizeTransform($transform ?? $this->_transform);
$transform = ImageTransformHelper::normalizeTransform($transform ?? $this->_transform);
} else {
$transform = null;
}
Expand Down Expand Up @@ -1922,7 +1923,7 @@ public function setUploader(?User $uploader = null): void
public function setTransform(mixed $transform): Asset
{
if ($this->allowTransforms()) {
$this->_transform = ImageTransforms::normalizeTransform($transform);
$this->_transform = ImageTransformHelper::normalizeTransform($transform);
}

return $this;
Expand Down Expand Up @@ -1979,7 +1980,7 @@ private function _url(mixed $transform = null, ?bool $immediately = null): ?stri
// if it's a site request - check the mime type and general settings and decide whether to nullify the transform
// otherwise - we can proceed and rely on the FallbackTransformer (e.g. for thumbs in the CP)
// see https://github.com/craftcms/cms/issues/13306 and https://github.com/craftcms/cms/issues/13624 for more info
(Craft::$app->getRequest()->getIsSiteRequest() && ! $this->allowTransforms()) ||
(request()->isSiteRequest() && ! $this->allowTransforms()) ||
! Image::canManipulateAsImage(pathinfo($this->getFilename(), PATHINFO_EXTENSION))
)
) {
Expand All @@ -1996,7 +1997,7 @@ private function _url(mixed $transform = null, ?bool $immediately = null): ?stri
}
}

$transform = ImageTransforms::normalizeTransform($transform);
$transform = ImageTransformHelper::normalizeTransform($transform);

if ($immediately === null) {
$immediately = Cms::config()->generateTransformsBeforePageLoad;
Expand All @@ -2017,7 +2018,7 @@ private function _url(mixed $transform = null, ?bool $immediately = null): ?stri
return null;
} catch (ImageTransformException $e) {
Log::warning("Couldn’t get image transform URL: {$e->getMessage()}", [__METHOD__]);
Craft::$app->getErrorHandler()->logException($e);
report($e);

return null;
}
Expand Down Expand Up @@ -2181,7 +2182,7 @@ protected function couldHaveAnimatedThumb(): bool
public function getMimeType(mixed $transform = null): ?string
{
$transform ??= $this->_transform;
$transform = ImageTransforms::normalizeTransform($transform);
$transform = ImageTransformHelper::normalizeTransform($transform);

if ($transform?->format) {
// Prepend with '.' to let pathinfo() work
Expand Down Expand Up @@ -2218,7 +2219,7 @@ public function getFormat(mixed $transform = null): string

$transform ??= $this->_transform;

return ImageTransforms::normalizeTransform($transform)->format ?? $ext;
return ImageTransformHelper::normalizeTransform($transform)->format ?? $ext;
}

/**
Expand Down Expand Up @@ -3068,7 +3069,7 @@ public function afterDelete(): void
}
}

Craft::$app->getImageTransforms()->deleteAllTransformData($this);
app(ImageTransforms::class)->deleteAllTransformData($this);
parent::afterDelete();
}

Expand Down Expand Up @@ -3193,7 +3194,7 @@ private function _dimensions(mixed $transform = null): array
return [$this->_width, $this->_height];
}

$transform = ImageTransforms::normalizeTransform($transform);
$transform = ImageTransformHelper::normalizeTransform($transform);

return Image::targetDimensions(
$this->_width,
Expand Down Expand Up @@ -3295,7 +3296,7 @@ private function _relocateFile(): void

if ($this->folderId) {
// Nuke the transforms
Craft::$app->getImageTransforms()->deleteAllTransformData($this);
app(ImageTransforms::class)->deleteAllTransformData($this);
}

// Update file properties
Expand Down
2 changes: 1 addition & 1 deletion src/Asset/Events/AfterGenerateTransform.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

namespace CraftCms\Cms\Asset\Events;

use craft\models\ImageTransform;
use CraftCms\Cms\Asset\Elements\Asset;
use CraftCms\Cms\Image\Data\ImageTransform;

/**
* @event AfterGenerateTransform The event that is triggered after a transform is generated for an asset.
Expand Down
2 changes: 1 addition & 1 deletion src/Asset/Events/BeforeDefineAssetUrl.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

namespace CraftCms\Cms\Asset\Events;

use craft\models\ImageTransform;
use CraftCms\Cms\Asset\Elements\Asset;
use CraftCms\Cms\Element\Events\BeforeDefineUrl;
use CraftCms\Cms\Image\Data\ImageTransform;

/**
* @event BeforeDefineAssetUrl The event that is triggered before defining the asset’s URL.
Expand Down
2 changes: 1 addition & 1 deletion src/Asset/Events/BeforeGenerateTransform.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

namespace CraftCms\Cms\Asset\Events;

use craft\models\ImageTransform;
use CraftCms\Cms\Asset\Elements\Asset;
use CraftCms\Cms\Image\Data\ImageTransform;

/**
* @event BeforeGenerateTransform The event that is triggered before a transform is generated for an asset.
Expand Down
2 changes: 1 addition & 1 deletion src/Asset/Events/DefineAssetUrl.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

namespace CraftCms\Cms\Asset\Events;

use craft\models\ImageTransform;
use CraftCms\Cms\Asset\Elements\Asset;
use CraftCms\Cms\Element\Events\DefineUrl;
use CraftCms\Cms\Image\Data\ImageTransform;

/**
* @event DefineAssetUrl The event that is triggered when defining the asset’s URL.
Expand Down
4 changes: 2 additions & 2 deletions src/Element/Queries/Concerns/Asset/EagerloadsTransforms.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace CraftCms\Cms\Element\Queries\Concerns\Asset;

use Craft;
use CraftCms\Cms\Support\Facades\ImageTransforms;
use Illuminate\Support\Collection;

/**
Expand Down Expand Up @@ -57,7 +57,7 @@ protected function initEagerloadsTransforms(): void
: [$transforms];
}

Craft::$app->getImageTransforms()->eagerLoadTransforms($result->all(), $transforms);
ImageTransforms::eagerLoadTransforms($result->all(), $transforms);

return $result;
});
Expand Down
2 changes: 1 addition & 1 deletion src/Field/BaseRelationField.php
Original file line number Diff line number Diff line change
Expand Up @@ -806,7 +806,7 @@ function (JoinClause $join) use ($element, $relationsAlias) {
return $query;
}

protected function fetchRelationsFromDbTable(?Elementinterface $element): bool
protected function fetchRelationsFromDbTable(?ElementInterface $element): bool
{
if ($this->layoutElement?->uid === null) {
return false;
Expand Down
11 changes: 5 additions & 6 deletions src/Http/Controllers/Assets/ImageEditorController.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
namespace CraftCms\Cms\Http\Controllers\Assets;

use Craft;
use craft\helpers\ImageTransforms;
use craft\imagetransforms\ImageTransformer;
use CraftCms\Cms\Asset\Assets;
use CraftCms\Cms\Asset\Concerns\EnforcesVolumePermissions;
use CraftCms\Cms\Asset\Elements\Asset;
use CraftCms\Cms\Cms;
use CraftCms\Cms\Http\RespondsWithFlash;
use CraftCms\Cms\Image\ImageTransformer;
use CraftCms\Cms\Image\ImageTransformHelper;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
Expand Down Expand Up @@ -68,7 +68,7 @@ public function editImage(Request $request): Response
return redirect($url);
} catch (NotSupportedException) {
// just output the file contents
$path = ImageTransforms::getLocalImageSource($asset);
$path = ImageTransformHelper::getLocalImageSource($asset);

return response()->file($path, [
'Content-Disposition' => 'inline; filename="'.$asset->getFilename().'"',
Expand Down Expand Up @@ -194,8 +194,7 @@ public function save(Request $request): Response
$asset->setFocalPoint($focal);

if ($focalChanged) {
$transforms = Craft::$app->getImageTransforms();
$transforms->deleteCreatedTransformsForAsset($asset);
app(\CraftCms\Cms\Image\ImageTransforms::class)->deleteCreatedTransformsForAsset($asset);
}

// Only replace file if it changed, otherwise just save changed focal points
Expand Down Expand Up @@ -253,7 +252,7 @@ public function updateFocalPoint(Request $request): Response

$asset->setFocalPoint($focalData);
Craft::$app->getElements()->saveElement($asset);
Craft::$app->getImageTransforms()->deleteCreatedTransformsForAsset($asset);
app(\CraftCms\Cms\Image\ImageTransforms::class)->deleteCreatedTransformsForAsset($asset);

return $this->asSuccess();
}
Expand Down
21 changes: 8 additions & 13 deletions src/Http/Controllers/Assets/TransformController.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@

use Craft;
use craft\helpers\FileHelper;
use craft\helpers\ImageTransforms;
use craft\imagetransforms\ImageTransformer;
use craft\models\ImageTransform;
use CraftCms\Aliases\Aliases;
use CraftCms\Cms\Asset\Elements\Asset;
use CraftCms\Cms\Http\RespondsWithFlash;
use CraftCms\Cms\Image\Data\ImageTransform;
use CraftCms\Cms\Image\ImageTransformer;
use CraftCms\Cms\Image\ImageTransformHelper;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Filesystem\LocalFilesystemAdapter;
use Illuminate\Http\JsonResponse;
Expand All @@ -28,7 +28,7 @@
public function generate(Request $request): Response
{
if ($transformId = $request->integer('transformId')) {
$transformer = Craft::createObject(ImageTransformer::class);
$transformer = new ImageTransformer;
$transformIndexModel = $transformer->getTransformIndexModelById($transformId);
abort_if(! $transformIndexModel, 400, "Invalid transform ID: $transformId");
$assetId = $transformIndexModel->assetId;
Expand All @@ -43,7 +43,7 @@ public function generate(Request $request): Response
abort_if(! $assetId, 400, 'Missing assetId');
abort_if(! is_string($handle), 400, 'Invalid transform handle.');
try {
$transform = ImageTransforms::normalizeTransform($handle);
$transform = ImageTransformHelper::normalizeTransform($handle);
} catch (Throwable $e) {
abort(500, 'Image transform cannot be created.', ['exception' => $e]);
}
Expand Down Expand Up @@ -104,13 +104,8 @@ public function generateFallback(Request $request): Response
if ($useOriginal) {
$ext = $asset->getExtension();
} else {
/** @var ImageTransform $transform */
$transform = Craft::createObject([
'class' => ImageTransform::class,
...ImageTransforms::parseTransformString($transformString),
]);

$ext = $transform->format ?: ImageTransforms::detectTransformFormat($asset);
$transform = new ImageTransform(ImageTransformHelper::parseTransformString($transformString));
$ext = $transform->format ?: ImageTransformHelper::detectTransformFormat($asset);
}

$filename = sprintf('%s.%s', $asset->id, $ext);
Expand All @@ -124,7 +119,7 @@ public function generateFallback(Request $request): Response
if ($useOriginal) {
$tempPath = $asset->getCopyOfFile();
} else {
$tempPath = ImageTransforms::generateTransform($asset, $transform);
$tempPath = ImageTransformHelper::generateTransform($asset, $transform);
}

FileHelper::createDirectory(dirname($path));
Expand Down
Loading
Loading