/** * Replaces the matched tags an image * @param array An array of matches (see preg_match_all) * @return string */ function plgContentGeshi_replacer(&$matches) { $params =& $GLOBALS['_MAMBOT_GESHI_PARAMS']; jimport('geshi.geshi'); jimport('domit.xml_saxy_shared'); $args = SAXY_Parser_Base::parseAttributes($matches[1]); $text = $matches[2]; $lang = JArrayHelper::getValue($args, 'lang', 'php'); $lines = JArrayHelper::getValue($args, 'lines', 'false'); $html_entities_match = array("|\\<br \\/\\>|", "#<#", "#>#", "|'|", '#"#', '# #'); $html_entities_replace = array("\n", '<', '>', "'", '"', ' '); $text = preg_replace($html_entities_match, $html_entities_replace, $text); $text = str_replace('<', '<', $text); $text = str_replace('>', '>', $text); /* // Replace 2 spaces with " " so non-tabbed code indents without making huge long lines. $text = str_replace(" ", " ", $text); // now Replace 2 spaces with " " to catch odd #s of spaces. $text = str_replace(" ", " ", $text); */ // Replace tabs with " " so tabbed code indents sorta right without making huge long lines. //$text = str_replace("\t", " ", $text); $text = str_replace("\t", ' ', $text); $geshi = new GeSHi($text, $lang); if ($lines == 'true') { $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); } $text = $geshi->parse_code(); return $text; }
function JHP_Geshi_replacer(&$matches) { // print_r($matches); //// die(); jimport('geshi.geshi'); jimport('domit.xml_saxy_shared'); $args = SAXY_Parser_Base::parseAttributes($matches[1]); // print_r($args); $text = $matches[2]; $lang = JArrayHelper::getValue($args, 'lang', 'phpz'); $lines = JArrayHelper::getValue($args, 'lines', 'true'); $html_entities_match = array("|\\<br \\/\\>|", "#<#", "#>#", "|'|", '#"#', '# #'); $html_entities_replace = array("\n", '<', '>', "'", '"', ' '); $text = preg_replace($html_entities_match, $html_entities_replace, $text); $text = str_replace('<', '<', $text); $text = str_replace('>', '>', $text); $text = str_replace("\t", ' ', $text); $geshi = new GeSHi($text, $lang); if ($lines == 'true') { $geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS); } $text = $geshi->parse_code(); $text = '???' . $text . '???'; return $text; }
/** * Replaces the matched tags an image * @param array An array of matches (see preg_match_all) * @return string */ function botGeshi_replacer(&$matches) { $params =& $GLOBALS['_MAMBOT_GESHI_PARAMS']; include_once dirname(__FILE__) . '/geshi/geshi.php'; $args = SAXY_Parser_Base::parseAttributes($matches[1]); $text = $matches[2]; $lang = mosGetParam($args, 'lang', 'php'); $lines = mosGetParam($args, 'lines', 'false'); $html_entities_match = array("|\\<br \\/\\>|", "#<#", "#>#", "|'|", '#"#', '# #'); $html_entities_replace = array("\n", '<', '>', "'", '"', ' '); $text = preg_replace($html_entities_match, $html_entities_replace, $text); $text = str_replace('<', '<', $text); $text = str_replace('>', '>', $text); // Replace tabs with " " so tabbed code indents sorta right without making huge long lines. //$text = str_replace("\t", " ", $text); $text = str_replace("\t", ' ', $text); $geshi = new GeSHi($text, $lang, dirname(__FILE__) . '/geshi/geshi'); if ($lines == 'true') { $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); } $text = $geshi->parse_code(); return $text; }