1
|
|
|
<?php |
2
|
|
|
namespace Staticus\Resources\Middlewares\Image; |
3
|
|
|
|
4
|
|
|
use Staticus\Resources\Commands\DeleteImageSizesResourceCommand; |
5
|
|
|
use Staticus\Resources\File\ResourceDO; |
6
|
|
|
use Staticus\Resources\Image\ResourceImageDOInterface; |
7
|
|
|
use Staticus\Resources\Middlewares\SaveResourceMiddlewareAbstract; |
8
|
|
|
use Staticus\Resources\ResourceDOInterface; |
9
|
|
|
use Staticus\Resources\Image\ResourceImageDO; |
10
|
|
|
|
11
|
|
|
abstract class SaveImageMiddlewareAbstract extends SaveResourceMiddlewareAbstract |
12
|
|
|
{ |
13
|
|
|
protected function copyFileToDefaults(ResourceDOInterface $resourceDO) |
14
|
|
|
{ |
15
|
|
|
/** @var ResourceImageDO $resourceDO */ |
16
|
|
|
if ( |
17
|
|
|
ResourceDO::DEFAULT_VARIANT !== $resourceDO->getVariant() |
18
|
|
|
&& $this->config->get('staticus.magic_defaults.variant') |
19
|
|
|
) { |
20
|
|
|
$defaultDO = clone $resourceDO; |
21
|
|
|
$defaultDO->setVariant(); |
22
|
|
|
$defaultDO->setVersion(); |
23
|
|
|
$defaultDO->setWidth(); |
24
|
|
|
$defaultDO->setHeight(); |
25
|
|
|
$this->copyResource($resourceDO, $defaultDO); |
26
|
|
|
} |
27
|
|
|
if ( |
28
|
|
|
ResourceDO::DEFAULT_VERSION !== $resourceDO->getVersion() |
29
|
|
|
&& $this->config->get('staticus.magic_defaults.version') |
30
|
|
|
) { |
31
|
|
|
$defaultDO = clone $resourceDO; |
32
|
|
|
$defaultDO->setVersion(); |
33
|
|
|
$defaultDO->setWidth(); |
34
|
|
|
$defaultDO->setHeight(); |
35
|
|
|
$this->copyResource($resourceDO, $defaultDO); |
36
|
|
|
} |
37
|
|
|
if ( |
38
|
|
|
ResourceImageDO::DEFAULT_DIMENSION !== $resourceDO->getDimension() |
39
|
|
|
&& $this->config->get('staticus.magic_defaults.dimension') |
40
|
|
|
) { |
41
|
|
|
$defaultDO = clone $resourceDO; |
42
|
|
|
$defaultDO->setWidth(); |
43
|
|
|
$defaultDO->setHeight(); |
44
|
|
|
$this->copyResource($resourceDO, $defaultDO); |
45
|
|
|
} |
46
|
|
|
} |
47
|
|
|
protected function afterSave(ResourceDOInterface $resourceDO) |
48
|
|
|
{ |
49
|
|
|
/** @var ResourceImageDOInterface $resourceDO */ |
50
|
|
|
if (ResourceImageDO::DEFAULT_DIMENSION === $resourceDO->getDimension()) { |
51
|
|
|
$command = new DeleteImageSizesResourceCommand($resourceDO, $this->filesystem); |
52
|
|
|
$command(); |
53
|
|
|
} |
54
|
|
|
} |
55
|
|
|
protected function backup(ResourceDOInterface $resourceDO) |
56
|
|
|
{ |
57
|
|
|
/** @var ResourceImageDOInterface $resourceDO */ |
58
|
|
|
return ResourceImageDO::DEFAULT_DIMENSION === $resourceDO->getDimension() |
59
|
|
|
? parent::backup($resourceDO) |
60
|
|
|
: $resourceDO; |
61
|
|
|
} |
62
|
|
|
protected function destroyEqual(ResourceDOInterface $resourceDO, ResourceDOInterface $backupResourceVerDO) |
63
|
|
|
{ |
64
|
|
|
/** @var ResourceImageDOInterface $resourceDO */ |
65
|
|
|
return ResourceImageDO::DEFAULT_DIMENSION === $resourceDO->getDimension() |
66
|
|
|
? parent::destroyEqual($resourceDO, $backupResourceVerDO) |
67
|
|
|
: $resourceDO; |
68
|
|
|
} |
69
|
|
|
} |
70
|
|
|
|