includes/wikiengine/Render/Xhtml/Function.php
changeset 1 fe660c52c48f
equal deleted inserted replaced
0:902822492a68 1:fe660c52c48f
       
     1 <?php
       
     2 // vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4:
       
     3 /**
       
     4  * Function rule end renderer for Xhtml
       
     5  *
       
     6  * PHP versions 4 and 5
       
     7  *
       
     8  * @category   Text
       
     9  * @package    Text_Wiki
       
    10  * @author     Paul M. Jones <pmjones@php.net>
       
    11  * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
       
    12  * @version    CVS: $Id: Function.php,v 1.5 2006/02/10 23:07:03 toggg Exp $
       
    13  * @link       http://pear.php.net/package/Text_Wiki
       
    14  */
       
    15 
       
    16 /**
       
    17  * This class renders a function description in XHTML.
       
    18  *
       
    19  * @category   Text
       
    20  * @package    Text_Wiki
       
    21  * @author     Paul M. Jones <pmjones@php.net>
       
    22  * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
       
    23  * @version    Release: @package_version@
       
    24  * @link       http://pear.php.net/package/Text_Wiki
       
    25  */
       
    26 class Text_Wiki_Render_Xhtml_Function extends Text_Wiki_Render {
       
    27 
       
    28     var $conf = array(
       
    29     	// list separator for params and throws
       
    30         'list_sep' => ', ',
       
    31 
       
    32         // the "main" format string
       
    33         'format_main' => '%access %return <b>%name</b> ( %params ) %throws',
       
    34 
       
    35         // the looped format string for required params
       
    36         'format_param' => '%type <i>%descr</i>',
       
    37 
       
    38         // the looped format string for params with default values
       
    39         'format_paramd' => '[%type <i>%descr</i> default %default]',
       
    40 
       
    41         // the looped format string for throws
       
    42         'format_throws' => '<b>throws</b> %type <i>%descr</i>'
       
    43     );
       
    44 
       
    45     /**
       
    46     *
       
    47     * Renders a token into text matching the requested format.
       
    48     *
       
    49     * @access public
       
    50     *
       
    51     * @param array $options The "options" portion of the token (second
       
    52     * element).
       
    53     *
       
    54     * @return string The text rendered from the token options.
       
    55     *
       
    56     */
       
    57 
       
    58     function token($options)
       
    59     {
       
    60         extract($options); // name, access, return, params, throws
       
    61 
       
    62         // build the baseline output
       
    63         $output = $this->conf['format_main'];
       
    64         $output = str_replace('%access', $this->textEncode($access), $output);
       
    65         $output = str_replace('%return', $this->textEncode($return), $output);
       
    66         $output = str_replace('%name', $this->textEncode($name), $output);
       
    67 
       
    68         // build the set of params
       
    69         $list = array();
       
    70         foreach ($params as $key => $val) {
       
    71 
       
    72             // is there a default value?
       
    73             if ($val['default']) {
       
    74                 $tmp = $this->conf['format_paramd'];
       
    75             } else {
       
    76                 $tmp = $this->conf['format_param'];
       
    77             }
       
    78 
       
    79             // add the param elements
       
    80             $tmp = str_replace('%type', $this->textEncode($val['type']), $tmp);
       
    81             $tmp = str_replace('%descr', $this->textEncode($val['descr']), $tmp);
       
    82             $tmp = str_replace('%default', $this->textEncode($val['default']), $tmp);
       
    83             $list[] = $tmp;
       
    84         }
       
    85 
       
    86         // insert params into output
       
    87         $tmp = implode($this->conf['list_sep'], $list);
       
    88         $output = str_replace('%params', $tmp, $output);
       
    89 
       
    90         // build the set of throws
       
    91         $list = array();
       
    92         foreach ($throws as $key => $val) {
       
    93                $tmp = $this->conf['format_throws'];
       
    94             $tmp = str_replace('%type', $this->textEncode($val['type']), $tmp);
       
    95             $tmp = str_replace('%descr', $this->textEncode($val['descr']), $tmp);
       
    96             $list[] = $tmp;
       
    97         }
       
    98 
       
    99         // insert throws into output
       
   100         $tmp = implode($this->conf['list_sep'], $list);
       
   101         $output = str_replace('%throws', $tmp, $output);
       
   102 
       
   103         // close the div and return the output
       
   104         $output .= '</div>';
       
   105         return "\n$output\n\n";
       
   106     }
       
   107 }
       
   108 ?>