From: Chuck Hagenbuch Date: Sat, 2 Oct 2010 22:35:20 +0000 (-0400) Subject: Move Horde-specific SyntaxHighlighter to Core X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=357a22cea2afffe676c7b0ed185c8ca909136f93;p=horde.git Move Horde-specific SyntaxHighlighter to Core --- diff --git a/framework/Core/lib/Horde/Core/Factory/MimeViewer.php b/framework/Core/lib/Horde/Core/Factory/MimeViewer.php index 61e7b210a..b8f08fc07 100644 --- a/framework/Core/lib/Horde/Core/Factory/MimeViewer.php +++ b/framework/Core/lib/Horde/Core/Factory/MimeViewer.php @@ -108,13 +108,6 @@ class Horde_Core_Factory_MimeViewer )); switch ($config['driver']) { - case 'Css': - if ($config['app'] == 'horde') { - $driver = 'Horde_Core_Mime_Viewer_Css'; - } - $params['registry'] = $GLOBALS['registry']; - break; - case 'Deb': case 'Rpm': $params['monospace'] = 'fixed'; @@ -138,6 +131,13 @@ class Horde_Core_Factory_MimeViewer $params['viewer_callback'] = array($this, 'getViewerCallback'); break; + case 'Syntaxhighlighter': + if ($config['app'] == 'horde') { + $driver = 'Horde_Core_Mime_Viewer_Syntaxhighlighter'; + } + $params['registry'] = $GLOBALS['registry']; + break; + case 'Tgz': $params['gzip'] = Horde_Compress::factory('Gzip'); $params['monospace'] = 'fixed'; diff --git a/framework/Core/lib/Horde/Core/Mime/Viewer/Css.php b/framework/Core/lib/Horde/Core/Mime/Viewer/Css.php deleted file mode 100644 index 4cf88503e..000000000 --- a/framework/Core/lib/Horde/Core/Mime/Viewer/Css.php +++ /dev/null @@ -1,63 +0,0 @@ - - * @category Horde - * @license http://www.fsf.org/copyleft/lgpl.html LGPL - * @package Core - */ -class Horde_Core_Mime_Viewer_Css extends Horde_Mime_Viewer_Css -{ - /** - * Constructor. - * - * @param Horde_Mime_Part $mime_part The object with the data to be - * rendered. - * @param array $conf Configuration: - *
-     * 'registry' - (Horde_Registry) Registry object.
-     * 
- * - * @throws InvalidArgumentException - */ - public function __construct(Horde_Mime_Part $part, array $conf = array()) - { - $this->_required = array_merge($this->_required, array( - 'registry' - )); - - parent::__construct($part, $conf); - } - - /** - * Return the full rendered version of the Horde_Mime_Part object. - * - * @return array See parent::render(). - */ - protected function _render() - { - $ret = $this->_renderInline(); - - // Need Horde headers for CSS tags. - if (!empty($ret)) { - $templates = $this->getConfigParam('registry')->get('templates', 'horde'); - - reset($ret); - Horde::startBuffer(); - require $templates . '/common-header.inc'; - echo $ret[key($ret)]['data']; - require $templates . '/common-footer.inc'; - $ret[key($ret)]['data'] = Horde::endBuffer(); - } - - return $ret; - } - -} diff --git a/framework/Core/lib/Horde/Core/Mime/Viewer/SyntaxHighlighter.php b/framework/Core/lib/Horde/Core/Mime/Viewer/SyntaxHighlighter.php new file mode 100644 index 000000000..e29089936 --- /dev/null +++ b/framework/Core/lib/Horde/Core/Mime/Viewer/SyntaxHighlighter.php @@ -0,0 +1,59 @@ + + * @category Horde + * @license http://www.fsf.org/copyleft/lgpl.html LGPL + * @package Mime_Viewer + */ +class Horde_Core_Mime_Viewer_Syntaxhighlighter extends Horde_Mime_Viewer_Syntaxhighlighter +{ + protected static $_shLoaded = false; + protected static $_shBrushes = array(); + + /** + * Return the rendered inline version of the Horde_Mime_Part object. + * + * @return array See parent::render(). + */ + protected function _renderInline() + { + /* Determine the language and brush from the mime type. */ + $mimeType = $this->_mimepart->getType(); + $language = $this->_mimeTypeToLanguage($mimeType); + $brush = $this->_languageToBrush($language); + + if (!self::$_shLoaded) { + Horde::addScriptFile('syntaxhighlighter/scripts/shCore.js', 'horde', true); + Horde::addInlineScript(array( + 'SyntaxHighlighter.defaults[\'toolbar\'] = false', + 'SyntaxHighlighter.all()', + ), 'dom'); + self::$_shLoaded = true; + + $sh_js_fs = $this->getConfigParam('registry')->get('jsfs', 'horde') . '/syntaxhighlighter/styles/'; + $sh_js_uri = Horde::url($this->getConfigParam('registry')->get('jsuri', 'horde'), false, -1) . '/syntaxhighlighter/styles/'; + Horde_Themes::includeStylesheetFiles(array('additional' => array( + array('f' => $sh_js_fs . 'shCoreEclipse.css', 'u' => $sh_js_uri . 'shCoreEclipse.css'), + array('f' => $sh_js_fs . 'shThemeEclipse.css', 'u' => $sh_js_uri . 'shThemeEclipse.css'), + ))); + } + if (empty(self::$_shBrushes[$brush])) { + Horde::addScriptFile('syntaxhighlighter/scripts/shBrush' . $brush . '.js', 'horde', true); + self::$_shBrushes[$brush] = true; + } + + $results = '
' . htmlspecialchars($this->_mimepart->getContents(), ENT_QUOTES, $this->getConfigParam('charset')) . '
'; + return $this->_renderReturn( + $results, + 'text/html; charset=' . $this->getConfigParam('charset') + ); + } +} diff --git a/framework/Core/package.xml b/framework/Core/package.xml index 145d3202b..7116120a8 100644 --- a/framework/Core/package.xml +++ b/framework/Core/package.xml @@ -190,7 +190,7 @@ Application Framework. - + @@ -503,7 +503,7 @@ Application Framework. - + diff --git a/framework/Mime_Viewer/lib/Horde/Mime/Viewer/SyntaxHighlighter.php b/framework/Mime_Viewer/lib/Horde/Mime/Viewer/SyntaxHighlighter.php index e1eec6929..6a75dc305 100644 --- a/framework/Mime_Viewer/lib/Horde/Mime/Viewer/SyntaxHighlighter.php +++ b/framework/Mime_Viewer/lib/Horde/Mime/Viewer/SyntaxHighlighter.php @@ -1,7 +1,7 @@ _mimepart->getType(); - if (strpos($mimeType, '/') === false) { - $mimeType = "application/x-$mimeType"; - } $language = $this->_mimeTypeToLanguage($mimeType); $brush = $this->_languageToBrush($language); - if (!self::$_shLoaded) { - Horde::addScriptFile('syntaxhighlighter/scripts/shCore.js', 'horde', true); - Horde::addInlineScript(array( - 'SyntaxHighlighter.defaults[\'toolbar\'] = false', - 'SyntaxHighlighter.all()', - ), 'dom'); - self::$_shLoaded = true; - - $sh_js_fs = $GLOBALS['injector']->getInstance('Horde_Registry')->get('jsfs', 'horde') . '/syntaxhighlighter/styles/'; - $sh_js_uri = Horde::url($GLOBALS['injector']->getInstance('Horde_Registry')->get('jsuri', 'horde'), false, -1) . '/syntaxhighlighter/styles/'; - Horde_Themes::includeStylesheetFiles(array('additional' => array( - array('f' => $sh_js_fs . 'shCoreEclipse.css', 'u' => $sh_js_uri . 'shCoreEclipse.css'), - array('f' => $sh_js_fs . 'shThemeEclipse.css', 'u' => $sh_js_uri . 'shThemeEclipse.css'), - ))); - } - if (empty(self::$_shBrushes[$brush])) { - Horde::addScriptFile('syntaxhighlighter/scripts/shBrush' . $brush . '.js', 'horde', true); - self::$_shBrushes[$brush] = true; - } - $results = '
' . htmlspecialchars($this->_mimepart->getContents(), ENT_QUOTES, $this->getConfigParam('charset')) . '
'; return $this->_renderReturn( $results, diff --git a/framework/Mime_Viewer/package.xml b/framework/Mime_Viewer/package.xml index 2d8e922be..264c02207 100644 --- a/framework/Mime_Viewer/package.xml +++ b/framework/Mime_Viewer/package.xml @@ -22,7 +22,7 @@ LGPL -Replaced external or PHP-based syntax highlighters with javascript SyntaxHighlighter +Replaced external or PHP-based syntax highlighters with javascript SyntaxHighlighter: http://alexgorbatchev.com/SyntaxHighlighter/ @@ -126,7 +126,7 @@ Replaced external or PHP-based syntax highlighters with javascript SyntaxHighlig - + @@ -264,7 +264,7 @@ Replaced external or PHP-based syntax highlighters with javascript SyntaxHighlig - + @@ -296,7 +296,7 @@ Replaced external or PHP-based syntax highlighters with javascript SyntaxHighlig 2010-10-02 LGPL -Replaced external or PHP-based syntax highlighters with javascript SyntaxHighlighter +Replaced external or PHP-based syntax highlighters with javascript SyntaxHighlighter: http://alexgorbatchev.com/SyntaxHighlighter/ diff --git a/wicked/lib/Text_Wiki/Render/Xhtml/Code2.php b/wicked/lib/Text_Wiki/Render/Xhtml/Code2.php index bb2221632..f4aeeca73 100644 --- a/wicked/lib/Text_Wiki/Render/Xhtml/Code2.php +++ b/wicked/lib/Text_Wiki/Render/Xhtml/Code2.php @@ -1,7 +1,4 @@ setContents($options['text']); $part->setType("x-extension/$type"); - $viewer = new Horde_Mime_Viewer_SyntaxHighlighter($part, array('charset' => $GLOBALS['registry']->getCharset())); + $viewer = new Horde_Core_Mime_Viewer_Syntaxhighlighter($part, array('registry' => $GLOBALS['registry'], 'charset' => $GLOBALS['registry']->getCharset())); $data = $viewer->render('inline'); $data = reset($data); return $data['data'];