X-Git-Url: https://git.llucax.com/software/bife/bife-all.git/blobdiff_plain/6b3b1dd0cad8c4342008f139922e1ed26924bf2a..6040f3feab69010487b3e9b5b7ad532a0f44c50c:/src/BIFE/Parser.php?ds=sidebyside diff --git a/src/BIFE/Parser.php b/src/BIFE/Parser.php index a084a4e..78ab5b0 100644 --- a/src/BIFE/Parser.php +++ b/src/BIFE/Parser.php @@ -34,12 +34,12 @@ */ class BIFE_Parser { /** - * Output string. + * Top level widget. * - * @var string $output + * @var BIFE_Widget $root * @access public */ - var $output; + var $root; /** * XML parser resource. @@ -71,12 +71,10 @@ class BIFE_Parser { /** * Constructor. * - * @param HTML_Template_Sigma &$template Template to use to render the widgets. - * * @return void * @access public */ - function BIFE_Parser(&$template) // ~X2C + function BIFE_Parser() // ~X2C { $this->__construct($template); } @@ -86,15 +84,13 @@ class BIFE_Parser { /** * Constructor. * - * @param HTML_Template_Sigma &$template Template to use to render the widgets. - * * @return void * @access public */ - function __construct(&$template) // ~X2C + function __construct() // ~X2C { $this->stack = array(); - $this->output = ''; + $this->root = null; $this->parser = xml_parser_create(); $this->template =& $template; xml_set_object($this->parser, $this); @@ -163,9 +159,9 @@ class BIFE_Parser { end($this->stack); $parent =& $this->stack[key($this->stack)]; if ($parent) { - $parent->addContents($current->render($this->template)); + $parent->addContents($current); } else { - $this->output = $current->render($this->template); + $this->root =& $current; } } // -X2C @@ -214,14 +210,14 @@ class BIFE_Parser { // +X2C Operation 37 /** - * Parse a XML file returning the rendered output. + * Parse a XML file with a complete and valid XML document. * * @param string $filename Filename to parse. * - * @return void + * @return &BIFE_Widget * @access public */ - function parseFile($filename) // ~X2C + function &parseFile($filename) // ~X2C { if ($fp = @fopen($filename, "r")) { while ($data = fread($fp, 4096)) { @@ -232,19 +228,24 @@ class BIFE_Parser { E_USER_WARNING); } fclose($fp); + return $this->root; } // -X2C - // +X2C Operation 38 + + // +X2C Operation 74 /** - * Get rendered output. + * Parse a XML string with a complete and valid XML document. + * + * @param string $data XML data to parse. * - * @return string + * @return &BIFE_Widget * @access public */ - function getOutput() // ~X2C + function &parseString($data) // ~X2C { - return $this->output; + $this->parse($data, true); + return $this->root; } // -X2C