public function GeSHi($source, $language, $lineNumbers = false) { // little singleton pattern for GeSHi Class if (!isset(self::$_geshiInstance)) { require_once 'geshi.php'; $geshi = self::$_geshiInstance = new GeSHi(); $geshi->enable_classes(); } else { $geshi = self::$_geshiInstance; } // set data for geshi $geshi->set_source($source); $geshi->set_language($language); if ($lineNumbers) { $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS); } else { $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS); } $xhtml = array(); $value = $geshi->parse_code(); if ($value !== false && in_array($language, self::$_geshiStylesheet) === false) { self::$_geshiStylesheet[] = $language; $this->view->headStyle()->appendStyle($geshi->get_stylesheet()); } $xhtml[] = $value; return implode("\n", $xhtml); }
public function GeSHi($source = '', $language = '', $lineNumbers = false) { // little singleton pattern for GeSHi Class if (self::$_GESHi_INSTANCE === null) { require_once PATH_TO_LIBRARY . '/geshi.php'; $geshi = self::$_GESHi_INSTANCE = new GeSHi(); $geshi->set_language_path(PATH_TO_LIBRARY . '/geshi'); $geshi->enable_classes(); } else { $geshi = self::$_GESHi_INSTANCE; } if (!empty($source)) { $geshi->set_source($source); } if (!empty($language)) { $geshi->set_language($language); } if ($lineNumbers) { $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS); } else { $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS); } $xhtml = array(); $value = $geshi->parse_code(); if ($value !== false && in_array($language, self::$_GESHI_STYLESHEET) === false) { self::$_GESHI_STYLESHEET[] = $language; $xhtml[] = '<style>'; $xhtml[] = $geshi->get_stylesheet(); $xhtml[] = '</style>'; } $xhtml[] = $value; return implode("\n", $xhtml); }