diff --git a/lib/NewsletterTemplates/NewsletterTemplatesRepository.php b/lib/NewsletterTemplates/NewsletterTemplatesRepository.php index 5115bc8c26..7c2a50d8e4 100644 --- a/lib/NewsletterTemplates/NewsletterTemplatesRepository.php +++ b/lib/NewsletterTemplates/NewsletterTemplatesRepository.php @@ -49,7 +49,12 @@ class NewsletterTemplatesRepository extends Repository { } if (isset($data['thumbnail'])) { - $template->setThumbnail($data['thumbnail']); + // Backward compatibility for importing templates exported from older versions + if (strpos($data['thumbnail'], 'data:image') === 0) { + $data['thumbnail_data'] = $data['thumbnail']; + } else { + $template->setThumbnail($data['thumbnail']); + } } if (isset($data['thumbnail_data'])) { diff --git a/tests/integration/NewsletterTemplates/NewsletterTemplatesRepositoryTest.php b/tests/integration/NewsletterTemplates/NewsletterTemplatesRepositoryTest.php index ddee1659fe..9a61427a3b 100644 --- a/tests/integration/NewsletterTemplates/NewsletterTemplatesRepositoryTest.php +++ b/tests/integration/NewsletterTemplates/NewsletterTemplatesRepositoryTest.php @@ -54,6 +54,17 @@ class NewsletterTemplatesRepositoryTest extends \MailPoetTest { expect($templates[0]->getName())->equals('Testing template 5'); } + public function testItCanCreateFromOldDataFormat() { + $createdTemplate = $this->newsletterTemplatesRepository->createOrUpdate([ + 'name' => 'Another template', + 'body' => '{"content": {}, "globalStyles": {}}', + 'thumbnail' => 'data:image/gif;base64,R0lGODlhAQABAAAAACw=', + ]); + expect($createdTemplate->getName())->equals('Another template'); + expect($createdTemplate->getBody())->equals(['content' => [], 'globalStyles' => []]); + expect($createdTemplate->getThumbnailData())->equals('data:image/gif;base64,R0lGODlhAQABAAAAACw='); + } + public function _after() { $this->truncateEntity(NewsletterTemplateEntity::class); }