Make CSS inline in HTML mails
[bdrem.git] / src / bdrem / Renderer / Html.php
index 428f819277870477d9339a5af3f12cb73f31ea0a..10059ab80b723453d69a5b137389307ac608f92a 100644 (file)
@@ -53,8 +53,30 @@ class Renderer_Html extends Renderer
      */
     public function render($arEvents)
     {
+        $links = '';
+        if (isset($_SERVER['HTTP_HOST'])) {
+            if (!isset($_SERVER['REQUEST_SCHEME'])) {
+                $_SERVER['REQUEST_SCHEME'] = 'http';
+            }
+            $links = '  <link rel="alternate" type="text/calendar" href="'
+                . $_SERVER['REQUEST_SCHEME'] . '://'
+                . $_SERVER['HTTP_HOST']
+                . preg_replace('#\?.+$#', '', $_SERVER['REQUEST_URI'])
+                . '?renderer=ical'
+                . '"/>'
+                . "\n";
+            $links .= '  <link rel="alternate" type="text/plain" href="'
+                . $_SERVER['REQUEST_SCHEME'] . '://'
+                . $_SERVER['HTTP_HOST']
+                . preg_replace('#\?.+$#', '', $_SERVER['REQUEST_URI'])
+                . '?renderer=console'
+                . '"/>'
+                . "\n";
+        }
+
         $tr = new Renderer_HtmlTable();
         $table = $tr->render($arEvents);
+        $css = static::getCss();
         $s = <<<HTM
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
@@ -63,7 +85,22 @@ class Renderer_Html extends Renderer
  <head>
   <title>bdrem</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <style type="text/css">
+$links  <style type="text/css">$css</style>
+ </head>
+ <body>
+$table
+ </body>
+</html>
+HTM;
+        return $s;
+    }
+
+    /**
+     * Get the CSS for the HTML table
+     */
+    public static function getCss()
+    {
+        return <<<CSS
 table {
     border: 1px solid black;
     border-collapse: collapse;
@@ -129,14 +166,7 @@ tr.d2 td.icon:before {
 tr.d3 td.icon:before {
     content: "\342\227\224"
 }
-  </style>
- </head>
- <body>
-$table
- </body>
-</html>
-HTM;
-        return $s;
+CSS;
     }
 }
 ?>