Subversion Repositories Applications.papyrus

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
248 jpm 1
<?php
2
 
3
// $Id: Function.php,v 1.1 2005-01-20 19:43:21 jpm Exp $
4
 
5
class Text_Wiki_Render_Xhtml_Function extends Text_Wiki_Render {
6
 
7
    var $conf = array(
8
    	// list separator for params and throws
9
        'list_sep' => ', ',
10
 
11
        // the "main" format string
12
        'format_main' => '%access %return <b>%name</b> ( %params ) %throws',
13
 
14
        // the looped format string for required params
15
        'format_param' => '%type <i>%descr</i>',
16
 
17
        // the looped format string for params with default values
18
        'format_paramd' => '[%type <i>%descr</i> default %default]',
19
 
20
        // the looped format string for throws
21
        'format_throws' => '<b>throws</b> %type <i>%descr</i>'
22
    );
23
 
24
    /**
25
    *
26
    * Renders a token into text matching the requested format.
27
    *
28
    * @access public
29
    *
30
    * @param array $options The "options" portion of the token (second
31
    * element).
32
    *
33
    * @return string The text rendered from the token options.
34
    *
35
    */
36
 
37
    function token($options)
38
    {
39
        extract($options); // name, access, return, params, throws
40
 
41
        // build the baseline output
42
        $output = $this->conf['format_main'];
43
        $output = str_replace('%access', htmlspecialchars($access), $output);
44
        $output = str_replace('%return', htmlspecialchars($return), $output);
45
        $output = str_replace('%name', htmlspecialchars($name), $output);
46
 
47
        // build the set of params
48
        $list = array();
49
        foreach ($params as $key => $val) {
50
 
51
            // is there a default value?
52
            if ($val['default']) {
53
                $tmp = $this->conf['format_paramd'];
54
            } else {
55
                $tmp = $this->conf['format_param'];
56
            }
57
 
58
            // add the param elements
59
            $tmp = str_replace('%type', htmlspecialchars($val['type']), $tmp);
60
            $tmp = str_replace('%descr', htmlspecialchars($val['descr']), $tmp);
61
            $tmp = str_replace('%default', htmlspecialchars($val['default']), $tmp);
62
            $list[] = $tmp;
63
        }
64
 
65
        // insert params into output
66
        $tmp = implode($this->conf['list_sep'], $list);
67
        $output = str_replace('%params', $tmp, $output);
68
 
69
        // build the set of throws
70
        $list = array();
71
        foreach ($throws as $key => $val) {
72
               $tmp = $this->conf['format_throws'];
73
            $tmp = str_replace('%type', htmlspecialchars($val['type']), $tmp);
74
            $tmp = str_replace('%descr', htmlspecialchars($val['descr']), $tmp);
75
            $list[] = $tmp;
76
        }
77
 
78
        // insert throws into output
79
        $tmp = implode($this->conf['list_sep'], $list);
80
        $output = str_replace('%throws', $tmp, $output);
81
 
82
        // close the div and return the output
83
        $output .= '</div>';
84
        return "\n$output\n\n";
85
    }
86
}
87
?>