From 6977145fa62346b35db60da018e699b7f1967e90 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Sun, 15 Apr 2012 13:13:23 +0200 Subject: [PATCH] add image renderer --- data/config.default.php | 15 +++++++++++++++ data/templates/display-file.htm | 2 +- src/phorkie/File.php | 16 ++++++++++++---- src/phorkie/Renderer/Image.php | 24 ++++++++++++++++++++++++ src/phorkie/Renderer/Unknown.php | 21 +++++++++++++++++++++ 5 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 src/phorkie/Renderer/Image.php create mode 100644 src/phorkie/Renderer/Unknown.php diff --git a/data/config.default.php b/data/config.default.php index b07f042..c08d401 100644 --- a/data/config.default.php +++ b/data/config.default.php @@ -36,6 +36,11 @@ $GLOBALS['phorkie']['languages'] = array( 'geshi' => 'xml', 'show' => false ), + 'jpg' => array( + 'title' => 'JPEG image', + 'mime' => 'image/jpeg', + 'show' => false + ), 'js' => array( 'title' => 'Javascript', 'mime' => 'application/javascript', @@ -51,6 +56,11 @@ $GLOBALS['phorkie']['languages'] = array( 'mime' => 'text/x-php', 'geshi' => 'php' ), + 'png' => array( + 'title' => 'PNG image', + 'mime' => 'image/png', + 'show' => false + ), 'rst' => array( 'title' => 'reStructuredText', 'mime' => 'text/x-rst', @@ -67,6 +77,11 @@ $GLOBALS['phorkie']['languages'] = array( 'mime' => 'text/x-sql', 'geshi' => 'sql' ), + 'svg' => array( + 'title' => 'SVG image', + 'mime' => 'image/svg+xml', + 'show' => false + ), 'ts' => array( 'title' => 'TypoScript', 'mime' => 'text/plain',/* TODO: correct type */ diff --git a/data/templates/display-file.htm b/data/templates/display-file.htm index 1049abb..a768b7c 100644 --- a/data/templates/display-file.htm +++ b/data/templates/display-file.htm @@ -7,6 +7,6 @@

{{file.getFilename}}

- {{file.getHighlightedContent(toolres)|raw}} + {{file.getRenderedContent(toolres)|raw}}
diff --git a/src/phorkie/File.php b/src/phorkie/File.php index de8bde0..519413d 100644 --- a/src/phorkie/File.php +++ b/src/phorkie/File.php @@ -58,14 +58,22 @@ class File return file_get_contents($this->path); } - public function getHighlightedContent(Tool_Result $res = null) + public function getRenderedContent(Tool_Result $res = null) { - $ext = $this->getExt(); + $ext = $this->getExt(); + $class = '\\phorkie\\Renderer_Unknown'; + if (isset($GLOBALS['phorkie']['languages'][$ext]['renderer'])) { $class = $GLOBALS['phorkie']['languages'][$ext]['renderer']; - } else { - $class = '\\phorkie\\Renderer_Geshi'; + } else if (isset($GLOBALS['phorkie']['languages'][$ext]['mime'])) { + $type = $GLOBALS['phorkie']['languages'][$ext]['mime']; + if (substr($type, 0, 5) == 'text/') { + $class = '\\phorkie\\Renderer_Geshi'; + } else if (substr($type, 0, 6) == 'image/') { + $class = '\\phorkie\\Renderer_Image'; + } } + $rend = new $class(); return $rend->toHtml($this, $res); } diff --git a/src/phorkie/Renderer/Image.php b/src/phorkie/Renderer/Image.php new file mode 100644 index 0000000..9425646 --- /dev/null +++ b/src/phorkie/Renderer/Image.php @@ -0,0 +1,24 @@ +' + . '' + . ''; + } +} +?> diff --git a/src/phorkie/Renderer/Unknown.php b/src/phorkie/Renderer/Unknown.php new file mode 100644 index 0000000..da593cb --- /dev/null +++ b/src/phorkie/Renderer/Unknown.php @@ -0,0 +1,21 @@ +' + . 'No idea how to display this file' + . ''; + } +} +?> -- 2.30.2