X-Git-Url: https://git.cweiske.de/bdrem.git/blobdiff_plain/f4339edbbe92a1c4c104f6a58e9cfb4b2a93966e..6032c11d7a88651d85154ffe835a26b3f569c893:/src/bdrem/Renderer.php diff --git a/src/bdrem/Renderer.php b/src/bdrem/Renderer.php index a8da7a1..7357af6 100644 --- a/src/bdrem/Renderer.php +++ b/src/bdrem/Renderer.php @@ -1,10 +1,44 @@ + * @copyright 2014 Christian Weiske + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3 + * @link http://cweiske.de/bdrem.htm + */ namespace bdrem; +/** + * Base event renderer + * + * @category Tools + * @package Bdrem + * @author Christian Weiske + * @copyright 2014 Christian Weiske + * @license http://www.gnu.org/licenses/agpl.html GNU AGPL v3 + * @version Release: @package_version@ + * @link http://cweiske.de/bdrem.htm + */ abstract class Renderer { + /** + * HTTP content type of output + * @var string + */ protected $httpContentType = null; + /** + * Call the renderer and output the rendering result to shell or browser + * + * @param array $arEvents Event objects to render + * + * @return void + */ public function renderAndOutput($arEvents) { if (PHP_SAPI != 'cli' && $this->httpContentType !== null) { @@ -13,6 +47,43 @@ abstract class Renderer echo $this->render($arEvents); } + /** + * Do something when there are no events to render + * + * @return void + */ + public function handleStopOnEmpty() + { + } + + /** + * Display the events in some way + * + * @param array $arEvents Events to display + * + * @return string Event representation + */ abstract public function render($arEvents); + + /** + * Converts the given date string according to the user's locale setting. + * + * @param string $dateStr Date in format YYYY-MM-DD + * + * @return string Formatted date + */ + protected function getLocalDate($dateStr) + { + if ($dateStr{0} != '?') { + return strftime('%x', strtotime($dateStr)); + } + + $dateStr = str_replace('????', '1899', $dateStr); + return str_replace( + array('1899', '99'), + array('????', '??'), + strftime('%x', strtotime($dateStr)) + ); + } } ?>