includes/wikiengine/Render/Xhtml/Function.php
changeset 1 fe660c52c48f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/includes/wikiengine/Render/Xhtml/Function.php	Wed Jun 13 16:07:17 2007 -0400
@@ -0,0 +1,108 @@
+<?php
+// vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4:
+/**
+ * Function rule end renderer for Xhtml
+ *
+ * PHP versions 4 and 5
+ *
+ * @category   Text
+ * @package    Text_Wiki
+ * @author     Paul M. Jones <pmjones@php.net>
+ * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
+ * @version    CVS: $Id: Function.php,v 1.5 2006/02/10 23:07:03 toggg Exp $
+ * @link       http://pear.php.net/package/Text_Wiki
+ */
+
+/**
+ * This class renders a function description in XHTML.
+ *
+ * @category   Text
+ * @package    Text_Wiki
+ * @author     Paul M. Jones <pmjones@php.net>
+ * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
+ * @version    Release: @package_version@
+ * @link       http://pear.php.net/package/Text_Wiki
+ */
+class Text_Wiki_Render_Xhtml_Function extends Text_Wiki_Render {
+
+    var $conf = array(
+    	// list separator for params and throws
+        'list_sep' => ', ',
+
+        // the "main" format string
+        'format_main' => '%access %return <b>%name</b> ( %params ) %throws',
+
+        // the looped format string for required params
+        'format_param' => '%type <i>%descr</i>',
+
+        // the looped format string for params with default values
+        'format_paramd' => '[%type <i>%descr</i> default %default]',
+
+        // the looped format string for throws
+        'format_throws' => '<b>throws</b> %type <i>%descr</i>'
+    );
+
+    /**
+    *
+    * Renders a token into text matching the requested format.
+    *
+    * @access public
+    *
+    * @param array $options The "options" portion of the token (second
+    * element).
+    *
+    * @return string The text rendered from the token options.
+    *
+    */
+
+    function token($options)
+    {
+        extract($options); // name, access, return, params, throws
+
+        // build the baseline output
+        $output = $this->conf['format_main'];
+        $output = str_replace('%access', $this->textEncode($access), $output);
+        $output = str_replace('%return', $this->textEncode($return), $output);
+        $output = str_replace('%name', $this->textEncode($name), $output);
+
+        // build the set of params
+        $list = array();
+        foreach ($params as $key => $val) {
+
+            // is there a default value?
+            if ($val['default']) {
+                $tmp = $this->conf['format_paramd'];
+            } else {
+                $tmp = $this->conf['format_param'];
+            }
+
+            // add the param elements
+            $tmp = str_replace('%type', $this->textEncode($val['type']), $tmp);
+            $tmp = str_replace('%descr', $this->textEncode($val['descr']), $tmp);
+            $tmp = str_replace('%default', $this->textEncode($val['default']), $tmp);
+            $list[] = $tmp;
+        }
+
+        // insert params into output
+        $tmp = implode($this->conf['list_sep'], $list);
+        $output = str_replace('%params', $tmp, $output);
+
+        // build the set of throws
+        $list = array();
+        foreach ($throws as $key => $val) {
+               $tmp = $this->conf['format_throws'];
+            $tmp = str_replace('%type', $this->textEncode($val['type']), $tmp);
+            $tmp = str_replace('%descr', $this->textEncode($val['descr']), $tmp);
+            $list[] = $tmp;
+        }
+
+        // insert throws into output
+        $tmp = implode($this->conf['list_sep'], $list);
+        $output = str_replace('%throws', $tmp, $output);
+
+        // close the div and return the output
+        $output .= '</div>';
+        return "\n$output\n\n";
+    }
+}
+?>