0,0 → 1,62 |
<?php |
|
|
/*** |
* GeSHi highlighting |
* ------------------------------------------------------------- |
* File: block.geshi.php |
* Type: block |
* Name: geshi |
* Purpose: highlight a block of text using GeSHi |
* Author: Robert Campbell |
* ------------------------------------------------------------- |
*/ |
function smarty_cms_block_geshi($params, $content, &$smarty) |
{ |
// look for geshi in lib/geshi |
global $gCms; |
$config =& $gCms->GetConfig(); |
$dn = $config['root_path'].'/lib/geshi'; |
if( isset($config['geshi_path']) ) |
{ |
// allow an optional config var to override that |
$dn = $config['geshi_path']; |
} |
include_once($dn.'/geshi.php'); |
|
// defaults |
$lang = 'html'; |
$line_numbers = GESHI_NO_LINE_NUMBERS; |
$use_class = false; |
$class = 'geshi'; |
$strict = 'false'; |
|
// handle params |
if( isset($params['lang']) ) |
{ |
$lang = trim($params['lang']); |
} |
if( isset($params['linenumbers']) ) |
{ |
$line_numbers = GESHI_NORMAL_LINE_NUMBERS; |
} |
if( isset($params['class']) ) |
{ |
$class = trim($params['class']); |
$use_class = true; |
} |
if( isset($params['strict']) ) |
{ |
$strict = true; |
} |
|
if (isset($content)) { |
$geshi = new GeSHI($content, $lang); |
$geshi->enable_classes($use_class); |
$geshi->set_overall_class($class); |
$geshi->enable_line_numbers($line_numbers); |
$geshi->enable_strict_mode($strict); |
return $geshi->parse_code(); |
} |
} |
?> |