14
14
use Magento \Store \Model \Information as StoreInformation ;
15
15
use Magento \Store \Model \ScopeInterface ;
16
16
use Magento \Store \Model \Store ;
17
+ use Magento \MediaStorage \Helper \File \Storage \Database ;
17
18
18
19
/**
19
20
* Template model class
@@ -163,6 +164,11 @@ abstract class AbstractTemplate extends AbstractModel implements TemplateTypesIn
163
164
*/
164
165
private $ urlModel ;
165
166
167
+ /**
168
+ * @var Database
169
+ */
170
+ private $ fileStorageDatabase ;
171
+
166
172
/**
167
173
* @param \Magento\Framework\Model\Context $context
168
174
* @param \Magento\Framework\View\DesignInterface $design
@@ -177,6 +183,7 @@ abstract class AbstractTemplate extends AbstractModel implements TemplateTypesIn
177
183
* @param \Magento\Framework\Filter\FilterManager $filterManager
178
184
* @param \Magento\Framework\UrlInterface $urlModel
179
185
* @param array $data
186
+ * @param Database $fileStorageDatabase
180
187
*
181
188
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
182
189
*/
@@ -193,7 +200,8 @@ public function __construct(
193
200
\Magento \Email \Model \TemplateFactory $ templateFactory ,
194
201
\Magento \Framework \Filter \FilterManager $ filterManager ,
195
202
\Magento \Framework \UrlInterface $ urlModel ,
196
- array $ data = []
203
+ array $ data = [],
204
+ Database $ fileStorageDatabase = null
197
205
) {
198
206
$ this ->design = $ design ;
199
207
$ this ->area = isset ($ data ['area ' ]) ? $ data ['area ' ] : null ;
@@ -207,6 +215,7 @@ public function __construct(
207
215
$ this ->templateFactory = $ templateFactory ;
208
216
$ this ->filterManager = $ filterManager ;
209
217
$ this ->urlModel = $ urlModel ;
218
+ $ this ->fileStorageDatabase = $ fileStorageDatabase ?: \Magento \Framework \App \ObjectManager::getInstance ()->get (Database::class);
210
219
parent ::__construct ($ context , $ registry , null , null , $ data );
211
220
}
212
221
@@ -394,6 +403,11 @@ protected function getLogoUrl($store)
394
403
if ($ fileName ) {
395
404
$ uploadDir = \Magento \Email \Model \Design \Backend \Logo::UPLOAD_DIR ;
396
405
$ mediaDirectory = $ this ->filesystem ->getDirectoryRead (DirectoryList::MEDIA );
406
+ if ($ this ->fileStorageDatabase ->checkDbUsage () &&
407
+ !$ mediaDirectory ->isFile ($ uploadDir . '/ ' . $ fileName )
408
+ ) {
409
+ $ this ->fileStorageDatabase ->saveFileToFilesystem ($ uploadDir . '/ ' . $ fileName );
410
+ }
397
411
if ($ mediaDirectory ->isFile ($ uploadDir . '/ ' . $ fileName )) {
398
412
return $ this ->storeManager ->getStore ()->getBaseUrl (
399
413
\Magento \Framework \UrlInterface::URL_TYPE_MEDIA
0 commit comments