9 * @author Christian Weiske <cweiske@cweiske.de>
10 * @copyright 2014 Christian Weiske
11 * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3
12 * @link http://cweiske.de/bdrem.htm
17 * HTML page renderer. Renders a full HTML page.
21 * @author Christian Weiske <cweiske@cweiske.de>
22 * @copyright 2014 Christian Weiske
23 * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3
24 * @version Release: @package_version@
25 * @link http://cweiske.de/bdrem.htm
27 class Renderer_Html extends Renderer
33 protected $httpContentType = 'application/xhtml+xml; charset=utf-8';
36 * Send out HTTP headers when nothing shall be outputted.
40 public function handleStopOnEmpty()
42 header('HTTP/1.0 204 No Content');
46 * Generate a HTML page with the given events.
48 * @param array $arEvents Events to display on the HTML page
50 * @return string HTML code
52 * @see Renderer_HtmlTable
54 public function render($arEvents)
57 if (isset($_SERVER['HTTP_HOST'])) {
58 if (!isset($_SERVER['REQUEST_SCHEME'])) {
59 $_SERVER['REQUEST_SCHEME'] = 'http';
61 $links = ' <link rel="alternate" type="text/calendar" href="'
62 . $_SERVER['REQUEST_SCHEME'] . '://'
63 . $_SERVER['HTTP_HOST']
64 . preg_replace('#\?.+$#', '', $_SERVER['REQUEST_URI'])
68 $links .= ' <link rel="alternate" type="text/plain" href="'
69 . $_SERVER['REQUEST_SCHEME'] . '://'
70 . $_SERVER['HTTP_HOST']
71 . preg_replace('#\?.+$#', '', $_SERVER['REQUEST_URI'])
77 $tr = new Renderer_HtmlTable();
78 $table = $tr->render($arEvents);
79 $css = static::getCss();
81 <?xml version="1.0" encoding="utf-8"?>
82 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
83 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
84 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
87 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
88 $links <style type="text/css">$css</style>
99 * Get the CSS for the HTML table
101 public static function getCss()
105 border: 1px solid black;
106 border-collapse: collapse;
111 border: 1px solid grey;
118 background-color: #C4DDF4;
121 background-color: #FEDCBA;
124 background-color: #DEFABC;
127 background-color: white;
135 background-color: white;
142 background-color: #FEDCBA;
148 tr.d-3 td.icon:before {
149 content: "\342\227\224"
151 tr.d-2 td.icon:before {
152 content: "\342\227\221"
154 tr.d-1 td.icon:before {
155 content: "\342\227\225"
157 tr.d0 td.icon:before {
158 content: "\342\230\205"
160 tr.d1 td.icon:before {
161 content: "\342\227\225"
163 tr.d2 td.icon:before {
164 content: "\342\227\221"
166 tr.d3 td.icon:before {
167 content: "\342\227\224"