]> git.llucax.com Git - software/bife/bife-all.git/blobdiff - BIFE/Container.php
- Improved example.
[software/bife/bife-all.git] / BIFE / Container.php
index 2339f965de38b4e30dcb0e72b667a71ecc08992d..2ddc24d12975076e671987ea72da8291affcce8d 100644 (file)
@@ -38,25 +38,60 @@ require_once 'BIFE/Widget.php';
  * @abstract
  */
 class BIFE_Container extends BIFE_Widget {
+    /**
+     * Widget contents.
+     *
+     * @var    array $contents
+     * @access public
+     */
+    var $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
     {
-        trigger_error('Method not implemented '.get_class($this).
-            '::addContents().', E_USER_ERROR);
+        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_HIT &$template Template object to render the widget.
+     *
+     * @return string
+     * @access public
+     */
+    function renderContents(&$template) // ~X2C
+    {
+        $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
+
+
 } // -X2C Class :Container
 
-?>
+?>
\ No newline at end of file