1414use Magento \Store \Model \Information as StoreInformation ;
1515use Magento \Store \Model \ScopeInterface ;
1616use 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