Skip to content

Commit c764ca3

Browse files
author
Graham Wharton
committed
Transactional emails are now database aware with regard to email logo image.
1 parent e457037 commit c764ca3

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

app/code/Magento/Email/Model/AbstractTemplate.php

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Magento\Store\Model\Information as StoreInformation;
1515
use Magento\Store\Model\ScopeInterface;
1616
use Magento\Store\Model\Store;
17+
use Magento\MediaStorage\Helper\File\Storage\Database;
1718

1819
/**
1920
* Template model class
@@ -163,6 +164,11 @@ abstract class AbstractTemplate extends AbstractModel implements TemplateTypesIn
163164
*/
164165
private $urlModel;
165166

167+
/**
168+
* @var Database
169+
*/
170+
private $fileStorageDatabase;
171+
166172
/**
167173
* @param \Magento\Framework\Model\Context $context
168174
* @param \Magento\Framework\View\DesignInterface $design
@@ -177,6 +183,7 @@ abstract class AbstractTemplate extends AbstractModel implements TemplateTypesIn
177183
* @param \Magento\Framework\Filter\FilterManager $filterManager
178184
* @param \Magento\Framework\UrlInterface $urlModel
179185
* @param array $data
186+
* @param Database $fileStorageDatabase
180187
*
181188
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
182189
*/
@@ -193,7 +200,8 @@ public function __construct(
193200
\Magento\Email\Model\TemplateFactory $templateFactory,
194201
\Magento\Framework\Filter\FilterManager $filterManager,
195202
\Magento\Framework\UrlInterface $urlModel,
196-
array $data = []
203+
array $data = [],
204+
Database $fileStorageDatabase = null
197205
) {
198206
$this->design = $design;
199207
$this->area = isset($data['area']) ? $data['area'] : null;
@@ -207,6 +215,7 @@ public function __construct(
207215
$this->templateFactory = $templateFactory;
208216
$this->filterManager = $filterManager;
209217
$this->urlModel = $urlModel;
218+
$this->fileStorageDatabase = $fileStorageDatabase ?: \Magento\Framework\App\ObjectManager::getInstance()->get(Database::class);
210219
parent::__construct($context, $registry, null, null, $data);
211220
}
212221

@@ -394,6 +403,11 @@ protected function getLogoUrl($store)
394403
if ($fileName) {
395404
$uploadDir = \Magento\Email\Model\Design\Backend\Logo::UPLOAD_DIR;
396405
$mediaDirectory = $this->filesystem->getDirectoryRead(DirectoryList::MEDIA);
406+
if ($this->fileStorageDatabase->checkDbUsage() &&
407+
!$mediaDirectory->isFile($uploadDir . '/' . $fileName)
408+
) {
409+
$this->fileStorageDatabase->saveFileToFilesystem($uploadDir . '/' . $fileName);
410+
}
397411
if ($mediaDirectory->isFile($uploadDir . '/' . $fileName)) {
398412
return $this->storeManager->getStore()->getBaseUrl(
399413
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA

0 commit comments

Comments
 (0)