diff --git a/modules/system/models/MailLayout.php b/modules/system/models/MailLayout.php index 30e46601a..42b410fe2 100644 --- a/modules/system/models/MailLayout.php +++ b/modules/system/models/MailLayout.php @@ -71,6 +71,19 @@ class MailLayout extends Model return array_get(self::listCodes(), $code); } + public static function findOrMakeLayout($code) + { + $layout = self::whereCode($code)->first(); + + if (!$layout && View::exists($code)) { + $layout = new self; + $layout->code = $code; + $layout->fillFromView($code); + } + + return $layout; + } + /** * Loops over each mail layout and ensures the system has a layout, * if the layout does not exist, it will create one. diff --git a/modules/system/models/MailTemplate.php b/modules/system/models/MailTemplate.php index b2ad9b866..9940b271e 100644 --- a/modules/system/models/MailTemplate.php +++ b/modules/system/models/MailTemplate.php @@ -141,7 +141,7 @@ class MailTemplate extends Model $this->subject = array_get($sections, 'settings.subject', 'No subject'); $layoutCode = array_get($sections, 'settings.layout', 'default'); - $this->layout_id = MailLayout::getIdFromCode($layoutCode); + $this->layout = MailLayout::findOrMakeLayout($layoutCode); } protected static function getTemplateSections($code)