]> _ Git - psq.git/commitdiff
email template
authorLouis Jeckel <louis.jeckel@outlook.com>
Tue, 17 Nov 2020 14:56:30 +0000 (15:56 +0100)
committerLouis Jeckel <louis.jeckel@outlook.com>
Tue, 17 Nov 2020 14:56:30 +0000 (15:56 +0100)
app/EmailTemplate.php
resources/views/unlayer/button.blade.php [new file with mode: 0644]

index 42a1a1b17362a74344dc6432080a6da97c6b4c7a..2a3b5f8add0568461c0c2da8b26b246eb20e4b77 100644 (file)
@@ -44,19 +44,31 @@ class EmailTemplate extends Model
      * @param $user
      * @param $content
      * @return string
+     * @todo remove first regex
      */
     public static function fillWithContentFor($user, $content)
     {
-        $content = preg_replace('/<a /', '<a target="_blank"', $content);
+        $content = self::fillWithRegex($user, $content, '/\{\{[^(% )]*\}\}/', '{{', '}}');
+        return self::fillWithRegex($user, $content, '/%[^(% )]*%/', '%', '%');
+    }
 
-        return preg_replace_callback('/%[^(% )]*%/', function($matches) use($user){
+    /**
+     * @param $user
+     * @param $content
+     * @param string|string[] $regex
+     * @return string|null
+     */
+    public static function fillWithRegex($user, $content, $regex, $start, $stop)
+    {
 
-            $match = Str::before(Str::after($matches[0], '%'), '%');
+        return preg_replace_callback($regex, function($matches) use($user, $start, $stop){
 
+            $match = Str::before(Str::after($matches[0], $start),  $stop);
             return $user->templateAttribute($match, null) ?? $matches[0];
 
         }, $content);
 
+
     }
 
     /**
@@ -86,10 +98,9 @@ class EmailTemplate extends Model
      */
     public static function button($url, $label, $color = null)
     {
-        return view('vendor.mail.html.button', [
+        return view('unlayer.button', [
             'url' => $url,
             'slot' => $label,
-            'color' => $color
         ])->render();
     }
 
diff --git a/resources/views/unlayer/button.blade.php b/resources/views/unlayer/button.blade.php
new file mode 100644 (file)
index 0000000..e25d3f6
--- /dev/null
@@ -0,0 +1,17 @@
+<table id="u_content_button_1" class="u_content_button" style="font-family:'Open Sans',sans-serif;" role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
+  <tbody>
+    <tr>
+      <td style="overflow-wrap:break-word;word-break:break-word;padding:10px;font-family:'Open Sans',sans-serif;" align="left">
+
+<div class="v-text-align" align="center">
+  <!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;font-family:'Open Sans',sans-serif;"><tr><td class="v-text-align" style="font-family:'Open Sans',sans-serif;" align="center"><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="" style="height:45px; v-text-anchor:middle; width:120px;" arcsize="9%" stroke="f" fillcolor="#3AAEE0"><w:anchorlock/><center style="color:#FFFFFF;font-family:'Open Sans',sans-serif;"><![endif]-->
+    <a href="{!! $url !!}" target="_blank" class="v-size-width" style="box-sizing: border-box;display: inline-block;font-family:'Open Sans',sans-serif;text-decoration: none;-webkit-text-size-adjust: none;text-align: center;color: #FFFFFF; background-color: #3AAEE0; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; width:auto; max-width:100%; overflow-wrap: break-word; word-break: break-word; word-wrap:break-word; mso-border-alt: none;">
+      <span class="v-padding" style="display:block;padding:10px 20px;line-height:120%;"><span style="font-size: 14px; line-height: 16.8px;">{{$slot}}</span></span>
+    </a>
+  <!--[if mso]></center></td></tr></table><![endif]-->
+</div>
+
+      </td>
+    </tr>
+  </tbody>
+</table>