Blame |
Last modification |
View Log
| RSS feed
<?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();
}
}
?>