Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
9 | kardasa | 1 | <?php |
2 | |||
3 | |||
4 | /*** |
||
5 | * GeSHi highlighting |
||
6 | * ------------------------------------------------------------- |
||
7 | * File: block.geshi.php |
||
8 | * Type: block |
||
9 | * Name: geshi |
||
10 | * Purpose: highlight a block of text using GeSHi |
||
11 | * Author: Robert Campbell |
||
12 | * ------------------------------------------------------------- |
||
13 | */ |
||
14 | function smarty_cms_block_geshi($params, $content, &$smarty) |
||
15 | { |
||
16 | // look for geshi in lib/geshi |
||
17 | global $gCms; |
||
18 | $config =& $gCms->GetConfig(); |
||
19 | $dn = $config['root_path'].'/lib/geshi'; |
||
20 | if( isset($config['geshi_path']) ) |
||
21 | { |
||
22 | // allow an optional config var to override that |
||
23 | $dn = $config['geshi_path']; |
||
24 | } |
||
25 | include_once($dn.'/geshi.php'); |
||
26 | |||
27 | // defaults |
||
28 | $lang = 'html'; |
||
29 | $line_numbers = GESHI_NO_LINE_NUMBERS; |
||
30 | $use_class = false; |
||
31 | $class = 'geshi'; |
||
32 | $strict = 'false'; |
||
33 | |||
34 | // handle params |
||
35 | if( isset($params['lang']) ) |
||
36 | { |
||
37 | $lang = trim($params['lang']); |
||
38 | } |
||
39 | if( isset($params['linenumbers']) ) |
||
40 | { |
||
41 | $line_numbers = GESHI_NORMAL_LINE_NUMBERS; |
||
42 | } |
||
43 | if( isset($params['class']) ) |
||
44 | { |
||
45 | $class = trim($params['class']); |
||
46 | $use_class = true; |
||
47 | } |
||
48 | if( isset($params['strict']) ) |
||
49 | { |
||
50 | $strict = true; |
||
51 | } |
||
52 | |||
53 | if (isset($content)) { |
||
54 | $geshi = new GeSHI($content, $lang); |
||
55 | $geshi->enable_classes($use_class); |
||
56 | $geshi->set_overall_class($class); |
||
57 | $geshi->enable_line_numbers($line_numbers); |
||
58 | $geshi->enable_strict_mode($strict); |
||
59 | return $geshi->parse_code(); |
||
60 | } |
||
61 | } |
||
62 | ?> |