/** * The main method of the Plugin * * @param string $content: The PlugIn content * @param array $conf: The PlugIn configuration * @return The content that is displayed on the website */ function main($content, $config) { // get content $this->pi_initPIflexForm(); $config['content.']['lang'] = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'cLang', 'sVIEW'); $config['content.']['code'] = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'cCode', 'sVIEW'); $config['content.']['highlight'] = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'cHighlight', 'sOPTIONS'); $config['content.']['startnumber'] = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'cStartnumber', 'sOPTIONS'); // init geshi library $this->geshi = new GeSHi($config['content.']['code'], $config['content.']['lang']); // defaults $this->geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); // set highlighted lines if ($config['content.']['highlight'] !== '') { $this->geshi->highlight_lines_extra(split(',', $config['content.']['highlight'])); } // set startnumber if (isset($config['content.']['startnumber'])) { $this->geshi->start_line_numbers_at($config['content.']['startnumber']); } // style if (isset($config['default.'])) { $this->_styleSubjects($config['default.']); } if (isset($config[$config['content.']['lang'] . '.'])) { $this->_styleSubjects($config[$config['content.']['lang'] . '.']); } // external stylesheets if (isset($config['global.']['external']) && $config['global.']['external'] == 0) { // do not use external style sheets } else { // mtness.net modification: I love stylesheets! $this->geshi->enable_classes(); // Echo out the stylesheet for this code block And continue echoing the page $this->geshiCSS = '<style type="text/css"><!--' . $this->geshi->get_stylesheet() . '--></style>'; // additional headerdata to include the styles $GLOBALS['TSFE']->additionalHeaderData['dev_null_geshi:' . $config['content.']['lang']] = $this->geshiCSS; } // xhtml compliance if (isset($config['global.']['xhtmlcompliant']) && $config['global.']['xhtmlcompliant'] == 1) { $this->geshi->set_xhtml_compliance(true); } // check for errors if ($this->geshi->error() !== false) { // log an error, this happens if the language file is missing or non-readable. Other input // specific errors can also occour, eg. if a non-existing container type is set for the engine. $GLOBALS['BE_USER']->simplelog($this->geshi->error(), $extKey = 'dev_null_geshi', 1); } // render return $this->pi_wrapInBaseClass($this->geshi->parse_code()); }
protected function formatCodeBlocks($source){ return preg_replace_callback('/<code>([\s\S]*?)<\/code>/', function($matches){ $geshi = new GeSHi($matches[1], 'javascript'); $geshi->enable_classes(); return $geshi->parse_code(); }, $source); }
public function codeReplace($text) { // check if geshi available $geshiPath = dirname(__FILE__) . '/../vendor/geshi/geshi.php'; if (!file_exists($geshiPath)) { return $text; } $regexp = '@<code class="(\\w+)">(.+?)<\\/code>@s'; // replace codes if (preg_match_all($regexp, $text, $found)) { require_once $geshiPath; for ($index = 0; $index < count($found) - 1; $index++) { if (!isset($found[1][$index])) { continue; } $language = $found[1][$index]; $code = trim($found[2][$index]); $geshi = new GeSHi($code, $language); $geshi->set_header_type(GESHI_HEADER_NONE); $geshi->enable_classes(); $geshi->set_tab_width(2); $geshi->enable_keyword_links(false); if (in_array($language, array('php', 'css', 'shell', 'ruby', 'python', 'bash', 'sql')) && String::numberOfLines($code) > 5) { //$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 2); } // replace image place holders $text = str_replace($code, $geshi->parse_code(), $text); } } return $text; }
function source_highlighter($code) { $source = str_replace(array(">", "<", """, "&"), array(">", "<", "\"", "&"), $code[1]); if (false !== stristr($code[0], "[php]")) { $lang2geshi = "php"; } elseif (false !== stristr($code[0], "[sql]")) { $lang2geshi = "sql"; } elseif (false !== stristr($code[0], "[html]")) { $lang2geshi = "html4strict"; } else { $lang2geshi = "txt"; } $geshi = new GeSHi($source, $lang2geshi); $geshi->set_header_type(GESHI_HEADER_PRE_VALID); $geshi->set_overall_style('font: normal normal 100% monospace; color: #000066;', false); $geshi->set_line_style('color: #003030;', 'font-weight: bold; color: #006060;', true); $geshi->set_code_style('color: #000020;font-family:monospace; font-size:12px;line-height:6px;', true); //$geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); $geshi->enable_classes(false); $geshi->set_link_styles(GESHI_LINK, 'color: #000060;'); $geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;'); $return = "<div class=\"codetop\">CODE</div><div class=\"codemain\">\n"; $return .= $geshi->parse_code(); $return .= "\n</div>\n"; return $return; }
function load() { if ($this->exists() == true) { $this->import(); $this->lng = $this->data['language']; $this->source = $this->data['source']; } else { if (!class_exists('GeSHi')) { include_once 'classes/class.geshi.php'; } global $lang; $language = $this->hasLanguage() ? $this->lng : 'text'; $geshi = new GeSHi($this->source, $language, 'classes/geshi'); $geshi->set_encoding($lang->charset()); $geshi->enable_classes(false); $geshi->set_header_type(GESHI_HEADER_DIV); $geshi->enable_keyword_links(true); $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5); if (!$this->hasLanguage()) { $geshi->enable_highlighting(false); $geshi->set_numbers_highlighting(false); $geshi->set_brackets_highlighting(false); $language = ''; } else { $language = $geshi->get_language_name(); } $this->data = array('language' => $language, 'parsed' => $geshi->parse_code(), 'source' => $this->source); $this->export(); } }
/** * * Renders a token into text matching the requested format. * * @access public * * @param array $options The "options" portion of the token (second * element). * * @return string The text rendered from the token options. * */ function token($options) { $text = $options['text']; $attr = $options['attr']; $type = strtolower($attr['type']); $css = $this->formatConf(' class="%s"', 'css'); $css_code = $this->formatConf(' class="%s"', 'css_code'); $css_php = $this->formatConf(' class="%s"', 'css_php'); $css_html = $this->formatConf(' class="%s"', 'css_html'); $geshi_class = path::file("plugins") . "geshi/geshi.php"; if ($type != "" && file_exists(path::file("plugins") . "geshi/geshi.php") && is_readable(path::file("plugins") . "geshi/geshi.php")) { require_once path::file("plugins") . "geshi/geshi.php"; $geshi = new GeSHi(trim($text), $type, path::file("plugins") . "geshi/geshi/"); $geshi->set_encoding("utf-8"); $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS, 1); $geshi->set_header_type(GESHI_HEADER_DIV); $geshi->enable_classes(); $geshi->set_overall_class('geshi_code'); $text = $geshi->parse_code(); $style = $geshi->get_stylesheet(); global $page_handler; $style = "<style type='text/css'>\n{$style}\n</style>"; $page_handler->add_header_data($style); } else { //generic code example: //convert tabs to four spaces, //convert entities. $text = trim(htmlentities($text)); $text = str_replace("\t", " ", $text); $text = str_replace(" ", " ", $text); $text = "<code{$css_code}>{$text}</code>"; } return "\n{$text}\n\n"; }
function DoGeshi($code) { $geshi = new GeSHi(trim($code), "html4strict", null); $geshi->set_header_type(GESHI_HEADER_NONE); $geshi->enable_classes(); return "<span class=\"geshi\">" . str_replace("\n", "", $geshi->parse_code()) . "</span>"; }
function syntaxHighlight($matches) { $geshi = new GeSHi($matches[3], empty($matches[2]) ? "txt" : $matches[2]); $geshi->enable_classes(); $geshi->set_overall_style(""); // empty style return $geshi->parse_code(); }
/** * @param string $sContent * @param string $sLanguage * @return string */ public function parseGeshi($sContent, $sLanguage, $bUseClasses = false) { $oGeshi = new \GeSHi($sContent, $sLanguage); if ($bUseClasses) { $oGeshi->enable_classes(); } return $oGeshi->parse_code(); }
function markdown_code_highlighter($code, $language, $rss = false) { $code = stripslashes(trim(htmlspecialchars_decode($code, ENT_NOQUOTES))); $geshi = new GeSHi($code, $language); if ($rss == false) { $geshi->set_header_type(GESHI_HEADER_NONE); $geshi->enable_classes(); } return '<pre class="lang-' . $language . '"><code>' . $geshi->parse_code() . '</code></pre>'; }
function highlight($code, $lang) { if ($lang == 'php-html') { return smartHighlight($code); } $geshi = new GeSHi($code, $lang); $geshi->set_header_type(GESHI_HEADER_NONE); $geshi->enable_classes(); $geshi->enable_keyword_links(false); $code = $geshi->parse_code(); return '<span class="' . $lang . '">' . $code . '</span>'; }
public function register(Application $app) { $app['geshi'] = function () use($app) { $geshi = new \GeSHi(); $geshi->enable_classes(); // this must be the first method (see Geshi doc) $geshi->set_encoding($app['app.charset']); $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS); $geshi->enable_keyword_links(false); return $geshi; }; }
function handle_geshi($content, $language) { $g = new GeSHi($content, $language); $g->enable_classes(); $g->set_header_type(GESHI_HEADER_DIV); $g->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5); #$g->set_overall_style('color:black'); $g->set_overall_id('source'); $g->set_code_style('color:black;', "'Courier New', Courier, monospace"); $g->set_line_style('color:#838383;', '', true); return $g->parse_code(); }
protected function callGeshi($text, $language) { if ($language == 'html') { $language = 'html4strict'; } $text = html_entity_decode($text); $geshi = new GeSHi($text, $language); $geshi->enable_classes(); // disable links on PHP functions, HTML tags, ... $geshi->enable_keyword_links(false); $ret = @$geshi->parse_code(); //fix extra space at bottom return str_replace(" </pre>", "</pre>", $ret); }
function code_callback($matches) { $index = (int) $matches[1]; $lang = $this->saved_code[$index]['lang']; $code = $this->saved_code[$index]['code']; // for prevent memory leaks unset($this->saved_code[$index]); // translate some language names so that simpler names can be used ${$lang} = strtr($lang, array('html' => 'html4strict', 'php' => 'php-brief')); // if we get HTML for example, it's already encoded $geshi = new GeSHi(htmlspecialchars_decode(trim($code, " \t\n\r\v�"), ENT_QUOTES), $lang); $geshi->enable_classes(); $geshi->set_overall_class('code'); return $geshi->parse_code(); }
function highlight_sql_query($sql) { require_once 'classes/class.geshi.php'; $path = 'classes/geshi'; $language = 'mysql'; if (!file_exists($path . '/' . $language . '.php')) { $language = 'sql'; if (!file_exists($path . '/' . $language . '.php')) { return null; } } $geshi = new GeSHi($sql, $language, $path); $geshi->enable_classes(false); $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5); return $geshi->parse_code(); }
private function highlight(&$text, $lang = 'php', $lines = false) { $geshi = new GeSHi(trim($text, "\r\n"), $lang); $geshi->enable_classes(); $geshi->set_header_type(GESHI_HEADER_PRE); $geshi->set_overall_class("code"); $geshi->set_encoding("utf-8"); // [[mw:user:Brianegge]] suggestion $geshi->set_overall_style('background: #EEEEEE; border: padding: 0.2em'); if ($lines == true or $lines == 1 or $lines == '1') { $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS); } else { $geshi->enable_line_numbers(GESHI_NO_LINE_NUMBERS); } return "<style>" . $geshi->get_stylesheet() . "</style>" . $geshi->parse_code(); }
function bbcodeCodeHighlight($contents, $arg) { include_once "geshi.php"; if (!$arg) { return '<div class="codeblock">' . htmlentities($contents) . '</div>'; } else { $language = $arg; $geshi = new GeSHi(trim($contents), $language, null); $geshi->set_header_type(GESHI_HEADER_NONE); $geshi->enable_classes(); $geshi->enable_keyword_links(false); $code = str_replace("\n", "", $geshi->parse_code()); $code = decodeCrapEntities($code); return "<div class=\"codeblock geshi\">{$code}</div>"; } }
/** * filter * * @param string $text * @return string */ public function filter($text) { return preg_replace_callback(self::$regex, function ($matches) { if (isset($matches[1]) && isset($matches[2])) { //we have a #lang attribute in our <code /> $language = trim($matches[1], "#\n"); $code = html_entity_decode(trim($matches[2], "\n")); $geshi = new \GeSHi($code, $language); $geshi->set_header_type(GESHI_HEADER_PRE_VALID); $geshi->set_overall_class('highlighted'); $geshi->enable_classes(); return $geshi->parse_code(); } return $matches[0]; //for some reason this went wrong }, $text); }
function source_highlighter($source, $lang2geshi) { require_once 'geshi/geshi.php'; $source = str_replace(array("'", ">", "<", """, "&"), array("'", ">", "<", "\"", "&"), $source); $lang2geshi = $lang2geshi == 'html' ? 'html4strict' : $lang2geshi; $geshi = new GeSHi($source, $lang2geshi); $geshi->set_header_type(GESHI_HEADER_PRE_VALID); $geshi->set_overall_style('font: normal normal 100% monospace; color: #000066;', false); $geshi->set_line_style('color: #003030;', 'font-weight: bold; color: #006060;', true); $geshi->set_code_style('color: #000020;font-family:monospace; font-size:12px;line-height:13px;', true); $geshi->enable_classes(false); $geshi->set_link_styles(GESHI_LINK, 'color: #000060;'); $geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;'); $return = "<div class=\"codetop\">Code</div><div class=\"codemain\">\n"; $return .= $geshi->parse_code(); $return .= "\n</div>\n"; return $return; }
function bbcode_highlite($s, $language = false) { $s = base64_decode($s); if (!$language) { return '<code>' . htmlspecialchars($s, ENT_COMPAT, 'UTF-8') . '</code>'; } $geshi = new GeSHi($s, $language); $geshi->enable_classes(true); $geshi->set_header_type(GESHI_HEADER_DIV); $geshi->enable_keyword_links(false); $geshi->set_tab_width(4); $output = $geshi->parse_code(); if ($geshi->error()) { return false; } head('stylesheet', 'geshi/' . $language, 'screen'); return '<div class="geshi">' . $output . '</div>'; }
function highlight($code, $lang, $path) { if (empty($lang)) { $lang = 'c'; } $geshi = new GeSHi($code, $lang); $geshi->enable_classes(); $geshi->set_overall_class('highlight'); $geshi->set_header_type(GESHI_HEADER_NONE); /* Now this feature works, maybe activate it? */ /* $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 1); */ $result = $geshi->parse_code(); /* This thing fixes styles when line numbers are disabled */ $result = '<div class="highlight ' . $lang . '">' . $result . '</div>'; if ($geshi->error()) { $result = $code; } return $result; }
function bbcodeCodeHighlight($dom, $contents, $arg) { // in <pre> style $contents = preg_replace('/^\\n|\\n$/', "", $contents); include_once "geshi.php"; if (!$arg) { $div = $dom->createElement('div'); $div->setAttribute('class', 'codeblock'); $div->appendChild($dom->createTextNode($contents)); return $div; } else { $language = $arg; $geshi = new GeSHi($contents, $language); $geshi->set_header_type(GESHI_HEADER_NONE); $geshi->enable_classes(); $geshi->enable_keyword_links(false); $code = str_replace("\n", "", $geshi->parse_code()); return markupToMarkup($dom, "<div class=\"codeblock geshi\">{$code}</div>"); } }
function onParseContentBlock($page, $name, $text, $shortcut) { $output = NULL; if (!empty($name) && !$shortcut) { list($language, $lineNumber, $class, $id) = $this->getHighlightInfo($name); if (!empty($language)) { $geshi = new GeSHi(trim($text), $language); $geshi->set_language_path($this->yellow->config->get("pluginDir") . "/highlight/"); $geshi->set_header_type(GESHI_HEADER_PRE_TABLE); $geshi->set_overall_class($class); $geshi->set_overall_id($id); $geshi->enable_line_numbers($lineNumber ? GESHI_NORMAL_LINE_NUMBERS : GESHI_NO_LINE_NUMBERS); $geshi->start_line_numbers_at($lineNumber); $geshi->enable_classes(true); $geshi->enable_keyword_links(false); $output = $geshi->parse_code(); $output = preg_replace("#<pre(.*?)>(.+?)</pre>#s", "<pre\$1><code>\$2</code></pre>", $output); } } return $output; }
protected function formatGeshiCode(array $matches) { $code = $matches[2]; $language = $matches[1]; $cacheKey = md5($code . $language); if ($this->getOption('use_cache') && ($cache = $this->cacheManager->getCache('markdown')->get($cacheKey))) { return $cache; } $code = html_entity_decode($code); require_once dmOs::join(sfConfig::get('sf_lib_dir'), 'vendor/geshi/geshi.php'); $geshi = new GeSHi($code, $language); $geshi->enable_classes(); $html = $geshi->parse_code(); $html = dmString::str_replace_once('> ', '>', $html); $html = dmString::str_replace_once("\n<span class=\"kw2\"><?php</span>", '', $html); $html = dmString::str_replace_once("\n", '', $html); $html = dmString::str_replace_once(' ', '', $html); if ($this->getOption('use_cache')) { $this->cacheManager->getCache('markdown')->set($cacheKey, $html); } return $html; }
function pretty_file($file, $language, $startline = 0, $endline = 0, $number = false) { if (!$file) { return false; } $s = read_file($file, $startline, $endline); if (!$s) { return false; } if (!$language) { return $s; } $output = false; switch ($language) { case 'plain': $s = preg_replace("/\\]\\=\\>\n(\\s+)/m", "] => ", $s); $s = htmlentities($s, ENT_COMPAT, 'UTF-8'); $output = '<pre class="plain">' . PHP_EOL . $s . '</pre>' . PHP_EOL; break; default: $geshi = new GeSHi($s, $language); $geshi->enable_classes(true); $geshi->set_header_type(GESHI_HEADER_DIV); if ($number) { $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); $geshi->start_line_numbers_at($startline > 0 ? $startline : 1); } $geshi->enable_keyword_links(false); $geshi->set_tab_width(4); // echo '<pre>' . PHP_EOL .$geshi->get_stylesheet( ). '</pre>' . PHP_EOL; $output = $geshi->parse_code(); if ($geshi->error()) { return false; } } return $output; }
/** * User handler for code block * * @param TexyHandlerInvocation handler invocation * @param string block type * @param string text to highlight * @param string language * @param TexyModifier modifier * @return TexyHtml */ function blockHandler($invocation, $blocktype, $content, $lang, $modifier) { if ($blocktype !== 'block/code') { return $invocation->proceed(); } $texy = $invocation->getTexy(); global $geshiPath; if ($lang == 'html') { $lang = 'html4strict'; } $content = Texy::outdent($content); $geshi = new GeSHi($content, $lang, $geshiPath . 'geshi/'); // GeSHi could not find the language if ($geshi->error) { return $invocation->proceed(); } // do syntax-highlighting $geshi->set_encoding('UTF-8'); $geshi->set_header_type(GESHI_HEADER_PRE); $geshi->enable_classes(); $geshi->set_overall_style('color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', true); $geshi->set_line_style('font: normal normal 95% \'Courier New\', Courier, monospace; color: #003030;', 'font-weight: bold; color: #006060;', true); $geshi->set_code_style('color: #000020;', 'color: #000020;'); $geshi->set_link_styles(GESHI_LINK, 'color: #000060;'); $geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;'); // save generated stylesheet $texy->styleSheet .= $geshi->get_stylesheet(); $content = $geshi->parse_code(); // check buggy GESHI, it sometimes produce not UTF-8 valid code :-(( $content = iconv('UTF-8', 'UTF-8//IGNORE', $content); // protect output is in HTML $content = $texy->protect($content, Texy::CONTENT_BLOCK); $el = TexyHtml::el(); $el->setText($content); return $el; }
/** * Wrapper for GeSHi Code Highlighter, provides caching of its output * * @param string $code source code to be highlighted * @param string $language language to provide highlighting * @param string $wrapper html element to wrap the returned highlighted text * * @author Christopher Smith <*****@*****.**> * @author Andreas Gohr <*****@*****.**> */ function p_xhtml_cached_geshi($code, $language, $wrapper = 'pre') { global $conf, $config_cascade, $INPUT; $language = strtolower($language); // remove any leading or trailing blank lines $code = preg_replace('/^\\s*?\\n|\\s*?\\n$/', '', $code); $cache = getCacheName($language . $code, ".code"); $ctime = @filemtime($cache); if ($ctime && !$INPUT->bool('purge') && $ctime > filemtime(DOKU_INC . 'inc/geshi.php') && $ctime > @filemtime(DOKU_INC . 'inc/geshi/' . $language . '.php') && $ctime > filemtime(reset($config_cascade['main']['default']))) { // dokuwiki changed $highlighted_code = io_readFile($cache, false); } else { $geshi = new GeSHi($code, $language, DOKU_INC . 'inc/geshi'); $geshi->set_encoding('utf-8'); $geshi->enable_classes(); $geshi->set_header_type(GESHI_HEADER_PRE); $geshi->set_link_target($conf['target']['extern']); // remove GeSHi's wrapper element (we'll replace it with our own later) // we need to use a GeSHi wrapper to avoid <BR> throughout the highlighted text $highlighted_code = trim(preg_replace('!^<pre[^>]*>|</pre>$!', '', $geshi->parse_code()), "\n\r"); io_saveFile($cache, $highlighted_code); } // add a wrapper element if required if ($wrapper) { return "<{$wrapper} class=\"code {$language}\">{$highlighted_code}</{$wrapper}>"; } else { return $highlighted_code; } }
/** * Wrapper for GeSHi Code Highlighter, provides caching of its output * * @author Christopher Smith <*****@*****.**> */ function p_xhtml_cached_geshi($code, $language) { $cache = getCacheName($language . $code, ".code"); if (@file_exists($cache) && !$_REQUEST['purge'] && filemtime($cache) > filemtime(DOKU_INC . 'inc/geshi.php')) { $highlighted_code = io_readFile($cache, false); @touch($cache); } else { require_once DOKU_INC . 'inc/geshi.php'; $geshi = new GeSHi($code, strtolower($language), DOKU_INC . 'inc/geshi'); $geshi->set_encoding('utf-8'); $geshi->enable_classes(); $geshi->set_header_type(GESHI_HEADER_PRE); $geshi->set_overall_class("code {$language}"); $geshi->set_link_target($conf['target']['extern']); $highlighted_code = $geshi->parse_code(); io_saveFile($cache, $highlighted_code); } return $highlighted_code; }
$sourcecode['source'] = html_entity_decode($sourcecode['source'], ENT_QUOTES); ($code = $plugins->load('popup_hlcode_start')) ? eval($code) : null; if ($_GET['temp'] == 1) { viscacha_header('Content-Type: text/plain'); viscacha_header('Content-Length: ' . strlen($sourcecode['source'])); viscacha_header('Content-Disposition: attachment; filename="' . date('d-m-Y_H-i') . '.txt"'); echo $sourcecode['source']; $slog->updatelogged(); $db->close(); exit; } else { require_once 'classes/class.geshi.php'; $geshi = new GeSHi($sourcecode['source'], strtolower($sourcecode['language']), 'classes/geshi'); $geshi->set_encoding($lang->phrase('charset')); // Use classes for colouring $geshi->enable_classes(); // Output in a div instead in a pre-element $geshi->set_header_type(GESHI_HEADER_DIV); // Linenumbers on - each 5th element is bold $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5); $lang_name = $geshi->get_language_name(); // Print Stylesheet $htmlhead .= '<style type="text/css"><!-- ' . $geshi->get_stylesheet() . ' --></style>'; echo $tpl->parse("popup/header"); ($code = $plugins->load('popup_hlcode_initialized')) ? eval($code) : null; $sourcecode['hl'] = $geshi->parse_code(); echo $tpl->parse("popup/hlcode"); ($code = $plugins->load('popup_hlcode_end')) ? eval($code) : null; } } elseif ($_GET['action'] == "filetypes") { ($code = $plugins->load('popup_filetypes_query')) ? eval($code) : null;