|
19 | 19 | use Magento\PageBuilder\Api\TemplateRepositoryInterface;
|
20 | 20 | use Magento\PageBuilder\Model\ResourceModel\Template as ResourceTemplate;
|
21 | 21 | use Magento\PageBuilder\Model\ResourceModel\Template\CollectionFactory as TemplateCollectionFactory;
|
| 22 | +use Magento\MediaStorage\Helper\File\Storage\Database; |
22 | 23 |
|
23 | 24 | /**
|
24 | 25 | * Repository for Page Builder Templates
|
@@ -57,28 +58,36 @@ class TemplateRepository implements TemplateRepositoryInterface
|
57 | 58 | */
|
58 | 59 | private $filesystem;
|
59 | 60 |
|
| 61 | + /** |
| 62 | + * @var Database |
| 63 | + */ |
| 64 | + private $mediaStorage; |
| 65 | + |
60 | 66 | /**
|
61 | 67 | * @param ResourceTemplate $resource
|
62 | 68 | * @param TemplateFactory $templateFactory
|
63 | 69 | * @param TemplateCollectionFactory $templateCollectionFactory
|
64 | 70 | * @param TemplateSearchResultsInterfaceFactory $searchResultsFactory
|
65 | 71 | * @param CollectionProcessorInterface $collectionProcessor
|
66 | 72 | * @param Filesystem $filesystem
|
| 73 | + * @param Database $mediaStorage |
67 | 74 | */
|
68 | 75 | public function __construct(
|
69 | 76 | ResourceTemplate $resource,
|
70 | 77 | TemplateFactory $templateFactory,
|
71 | 78 | TemplateCollectionFactory $templateCollectionFactory,
|
72 | 79 | TemplateSearchResultsInterfaceFactory $searchResultsFactory,
|
73 | 80 | CollectionProcessorInterface $collectionProcessor,
|
74 |
| - Filesystem $filesystem |
| 81 | + Filesystem $filesystem, |
| 82 | + Database $mediaStorage |
75 | 83 | ) {
|
76 | 84 | $this->resource = $resource;
|
77 | 85 | $this->templateFactory = $templateFactory;
|
78 | 86 | $this->templateCollectionFactory = $templateCollectionFactory;
|
79 | 87 | $this->searchResultsFactory = $searchResultsFactory;
|
80 | 88 | $this->collectionProcessor = $collectionProcessor;
|
81 | 89 | $this->filesystem = $filesystem;
|
| 90 | + $this->mediaStorage = $mediaStorage; |
82 | 91 | }
|
83 | 92 |
|
84 | 93 | /**
|
@@ -137,18 +146,21 @@ public function delete(TemplateInterface $template) : bool
|
137 | 146 | ->getDirectoryWrite(\Magento\Framework\App\Filesystem\DirectoryList::MEDIA);
|
138 | 147 |
|
139 | 148 | try {
|
140 |
| - $previewImage = $template->getPreviewImage(); |
141 | 149 | $templateModel = $this->templateFactory->create();
|
142 | 150 | $this->resource->load($templateModel, $template->getTemplateId());
|
143 | 151 | $this->resource->delete($templateModel);
|
| 152 | + $previewImage = $template->getPreviewImage(); |
| 153 | + $previewThumbImage = $templateModel->getPreviewThumbnailImage(); |
144 | 154 |
|
145 | 155 | // Remove the preview image from the media directory
|
146 | 156 | if ($mediaDir->isExist($previewImage)) {
|
147 | 157 | $mediaDir->delete($previewImage);
|
148 | 158 | }
|
149 |
| - if ($mediaDir->isExist($templateModel->getPreviewThumbnailImage())) { |
150 |
| - $mediaDir->delete($templateModel->getPreviewThumbnailImage()); |
| 159 | + if ($mediaDir->isExist($previewThumbImage)) { |
| 160 | + $mediaDir->delete($previewThumbImage); |
151 | 161 | }
|
| 162 | + $this->mediaStorage->deleteFile($previewImage); |
| 163 | + $this->mediaStorage->deleteFile($previewThumbImage); |
152 | 164 | } catch (\Exception $exception) {
|
153 | 165 | throw new CouldNotDeleteException(
|
154 | 166 | __('Could not delete the Template: %1', $exception->getMessage())
|
|
0 commit comments