Ejemplo n.º 1
0
 public static function syncAll()
 {
     $templates = self::make()->listRegisteredTemplates();
     $dbTemplates = self::lists('is_custom', 'code');
     $newTemplates = array_diff_key($templates, $dbTemplates);
     /*
      * Clean up non-customized templates
      */
     foreach ($dbTemplates as $code => $is_custom) {
         if ($is_custom) {
             continue;
         }
         if (!array_key_exists($code, $templates)) {
             self::whereCode($code)->delete();
         }
     }
     /*
      * Create new templates
      */
     if (count($newTemplates)) {
         $categories = EmailLayout::lists('id', 'code');
     }
     foreach ($newTemplates as $code => $description) {
         $sections = self::getTemplateSections($code);
         $layoutCode = array_get($sections, 'settings.layout', 'default');
         $template = self::make();
         $template->code = $code;
         $template->description = $description;
         $template->is_custom = false;
         $template->layout_id = isset($categories[$layoutCode]) ? $categories[$layoutCode] : null;
         $template->forceSave();
     }
 }