]> git.llucax.com Git - software/bife/bife-all.git/blobdiff - src/BIFE/Container.php
- Added a new simple template system: Hooks + IT = HIT.
[software/bife/bife-all.git] / src / BIFE / Container.php
index d1ea194aefe10878372e84e1088330340e58b295..7c138ac5830b7989c9ec5b5dbdcbe883f2e8af04 100644 (file)
@@ -38,22 +38,85 @@ require_once 'BIFE/Widget.php';
  * @abstract
  */
 class BIFE_Container extends BIFE_Widget {
+    /**
+     * @var    array $contents
+     * @access public
+     */
+    var $contents;
+
     // ~X2C
 
+    // +X2C Operation 48
+    /**
+     * Constructor.
+     *
+     * @param  array $attrs Attributes.
+     *
+     * @return void
+     * @access public
+     */
+    function BIFE_Container($attrs) // ~X2C
+    {
+        $this->__construct($attrs);
+    }
+    // -X2C
+
+    // +X2C Operation 50
+    /**
+     * Constructor.
+     *
+     * @param  array $attrs Attributes.
+     *
+     * @return void
+     * @access public
+     */
+    function __construct($attrs) // ~X2C
+    {
+        parent::__construct($attrs);
+        $this->contents = array();
+    }
+    // -X2C
+
     // +X2C Operation 6
     /**
      * Adds contents to the container.
      *
-     * @param  string $contents Contents to add to the container.
+     * @param  mixed &$contents Contents to add to the container.
      *
      * @return void
      * @access public
-     * @abstract
      */
-    function addContents($contents) // ~X2C
+    function addContents(&$contents) // ~X2C
+    {
+        if (is_object($contents)) {
+            $this->contents[] =& $contents;
+        } else {
+            $this->contents[] = $contents;
+        }
+    }
+    // -X2C
+
+    // +X2C Operation 59
+    /**
+     * Renders the widget using a template returning a string with the results.
+     *
+     * @param  HTML_Template_Sigma &$template Template object to render the widget.
+     *
+     * @return string
+     * @access public
+     */
+    function render(&$template) // ~X2C
     {
-        trigger_error('Method not implemented '.get_class($this).
-            '::addContents().', E_USER_ERROR);
+        $c = count($this->contents);
+        $o = '';
+        for ($i = 0; $i < $c; $i++) {
+            if (is_object($this->contents[$i])) {
+                $o .= $this->contents[$i]->render($template);
+            } else {
+                $o .= $this->contents[$i];
+            }
+        }
+        return $o;
     }
     // -X2C