Subversion Repositories My Stuff

Rev

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
  ?>