From e86787a8eb6a31fbe95f1a3854d66e25e5e63c67 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 23 Jan 2014 17:05:49 +0100 Subject: html renderer, console renderer uses pear's Console_Table --- src/bdrem/Renderer/Console.php | 47 +++++++++----------- src/bdrem/Renderer/Html.php | 93 ++++++++++++++++++++++++++++++++++++++++ src/bdrem/Renderer/HtmlTable.php | 58 +++++++++++++++++++++++++ 3 files changed, 172 insertions(+), 26 deletions(-) create mode 100644 src/bdrem/Renderer/Html.php create mode 100644 src/bdrem/Renderer/HtmlTable.php (limited to 'src/bdrem/Renderer') diff --git a/src/bdrem/Renderer/Console.php b/src/bdrem/Renderer/Console.php index 2cd185f..01d6eb2 100644 --- a/src/bdrem/Renderer/Console.php +++ b/src/bdrem/Renderer/Console.php @@ -5,35 +5,30 @@ class Renderer_Console { public function render($arEvents) { - $s = "Days Age Name Event Date\n"; - $s .= "---- --- ---------------------------------------- -------------------- ----------\n"; - foreach ($arEvents as $event) { - $s .= sprintf( - "%3d %4s %s %s %s\n", - $event->days, - $event->age, - $this->str_pad($event->title, 40), - $this->str_pad($event->type, 20), - $event->date - ); - } - return $s; - } + $tbl = new \Console_Table( + CONSOLE_TABLE_ALIGN_LEFT, + array('sect' => '', 'rule' => '-', 'vert' => '') + ); + $tbl->setAlign(0, CONSOLE_TABLE_ALIGN_RIGHT); + $tbl->setAlign(1, CONSOLE_TABLE_ALIGN_RIGHT); - public function str_pad( - $input, $pad_length, $pad_string = ' ', $pad_type = STR_PAD_RIGHT - ) { - $l = mb_strlen($input, 'utf-8'); - if ($l >= $pad_length) { - return $input; - } + $tbl->setHeaders( + array('Days', 'Age', 'Name', 'Event', 'Date', 'Day') + ); - $p = str_repeat($pad_string, $pad_length - $l); - if ($pad_type == STR_PAD_RIGHT) { - return $input . $p; - } else { - return $p . $input; + foreach ($arEvents as $event) { + $tbl->addRow( + array( + $event->days, + $event->age, + wordwrap($event->title, 30, "\n", true), + wordwrap($event->type, 20, "\n", true), + $event->date, + strftime('%a', strtotime($event->localDate)) + ) + ); } + return $tbl->getTable(); } } ?> diff --git a/src/bdrem/Renderer/Html.php b/src/bdrem/Renderer/Html.php new file mode 100644 index 0000000..bb027d2 --- /dev/null +++ b/src/bdrem/Renderer/Html.php @@ -0,0 +1,93 @@ +render($arEvents); + $s = << + + + + bdrem + + + + +$table + + +HTM; + return $s; + } +} +?> diff --git a/src/bdrem/Renderer/HtmlTable.php b/src/bdrem/Renderer/HtmlTable.php new file mode 100644 index 0000000..574036f --- /dev/null +++ b/src/bdrem/Renderer/HtmlTable.php @@ -0,0 +1,58 @@ + + + + Days + Age + Event + Name + Date + Day + + + + +HTM; + foreach ($arEvents as $event) { + $class = 'd' . $event->days; + if ($event->days < 0) { + $class .= ' prev'; + } else if ($event->days == 0) { + $class .= ' today'; + } else { + $class .= ' next'; + } + $s .= sprintf( + '' + . '' + . '%d' + . '%s' + . '%s' + . '%s' + . '%s' + . '%s' + . "\n", + $event->days, + $event->age, + $event->title, + $event->type, + $event->date, + strftime('%a', strtotime($event->localDate)) + ); + } + $s .= << + + +HTM; + return $s; + } +} +?> -- cgit v1.2.3