]> git.llucax.com Git - software/bife/bife-all.git/blob - src/BIFE/Container.php
- Added a new simple template system: Hooks + IT = HIT.
[software/bife/bife-all.git] / src / BIFE / Container.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                       BIFE - Buil It FastEr                        |
5 // +--------------------------------------------------------------------+
6 // | This file is part of BIFE.                                         |
7 // |                                                                    |
8 // | BIFE is free software; you can redistribute it and/or modify it    |
9 // | under the terms of the GNU General Public License as published by  |
10 // | the Free Software Foundation; either version 2 of the License, or  |
11 // | (at your option) any later version.                                |
12 // |                                                                    |
13 // | BIFE is distributed in the hope that it will be useful, but        |
14 // | WITHOUT ANY WARRANTY; without even the implied warranty of         |
15 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   |
16 // | General Public License for more details.                           |
17 // |                                                                    |
18 // | You should have received a copy of the GNU General Public License  |
19 // | along with Hooks; if not, write to the Free Software Foundation,   |
20 // | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA      |
21 // +--------------------------------------------------------------------+
22 // | Created: Wed May 17 18:16:54 ART 2003                              |
23 // | Authors: Leandro Lucarella <luca@lugmen.org.ar>                    |
24 // +--------------------------------------------------------------------+
25 //
26 // $Id$
27 //
28
29 // +X2C includes
30 require_once 'BIFE/Widget.php';
31 // ~X2C
32
33 // +X2C Class 5 :Container
34 /**
35  * Base container widget class.
36  *
37  * @access public
38  * @abstract
39  */
40 class BIFE_Container extends BIFE_Widget {
41     /**
42      * @var    array $contents
43      * @access public
44      */
45     var $contents;
46
47     // ~X2C
48
49     // +X2C Operation 48
50     /**
51      * Constructor.
52      *
53      * @param  array $attrs Attributes.
54      *
55      * @return void
56      * @access public
57      */
58     function BIFE_Container($attrs) // ~X2C
59     {
60         $this->__construct($attrs);
61     }
62     // -X2C
63
64     // +X2C Operation 50
65     /**
66      * Constructor.
67      *
68      * @param  array $attrs Attributes.
69      *
70      * @return void
71      * @access public
72      */
73     function __construct($attrs) // ~X2C
74     {
75         parent::__construct($attrs);
76         $this->contents = array();
77     }
78     // -X2C
79
80     // +X2C Operation 6
81     /**
82      * Adds contents to the container.
83      *
84      * @param  mixed &$contents Contents to add to the container.
85      *
86      * @return void
87      * @access public
88      */
89     function addContents(&$contents) // ~X2C
90     {
91         if (is_object($contents)) {
92             $this->contents[] =& $contents;
93         } else {
94             $this->contents[] = $contents;
95         }
96     }
97     // -X2C
98
99     // +X2C Operation 59
100     /**
101      * Renders the widget using a template returning a string with the results.
102      *
103      * @param  HTML_Template_Sigma &$template Template object to render the widget.
104      *
105      * @return string
106      * @access public
107      */
108     function render(&$template) // ~X2C
109     {
110         $c = count($this->contents);
111         $o = '';
112         for ($i = 0; $i < $c; $i++) {
113             if (is_object($this->contents[$i])) {
114                 $o .= $this->contents[$i]->render($template);
115             } else {
116                 $o .= $this->contents[$i];
117             }
118         }
119         return $o;
120     }
121     // -X2C
122
123 } // -X2C Class :Container
124
125 ?>