]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MLIB/Widget/Container.php
Se agrega a la clase MLIB_PDF_Tabla la posibilidad de agregar estilos nuevos para
[mecon/meconlib.git] / lib / MLIB / Widget / Container.php
1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
3                                     mlib
4 -------------------------------------------------------------------------------
5 This file is part of mlib.
6
7 mlib is free software; you can redistribute it and/or modify it under
8 the terms of the GNU Lesser General Public License as published by the Free
9 Software Foundation; either version 2 of the License, or (at your option)
10 any later version.
11
12 mlib is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 
15 details.
16  
17 You should have received a copy of the GNU Lesser General Public License; if 
18 not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA  02111-1307  USA
20 -------------------------------------------------------------------------------
21 Created: lun ago  2 10:48:51 ART 2004
22 Authors: Martín Marrese <m_marrese@argentina.com>
23          Leandro Lucarella <luca@llucax.hn.org>
24 -------------------------------------------------------------------------------
25 $Id$
26 -----------------------------------------------------------------------------*/
27
28 require_once 'MLIB/Widget.php';
29
30 /**
31  * Container base class.
32  * 
33  * @todo Add a global example using all the methods.
34  * @author Leandro Lucarella <luca@llucax.hn.org>
35  * @author Martín Marrese <m_marrese@argentina.com>
36  * @since  1.0
37  */
38 class MLIB_Widget_Container extends MLIB_Widget {
39
40     /**
41      * Contents of the widget.
42      *
43      * @protected
44      */
45     var $contents = array ();
46     
47     /**
48      * Adds new content to the container and returns the corresponding key.
49      *
50      * @param $content New content.
51      *
52      * @return Key
53      * @todo Add an example.
54      */
55     function addContent($content)
56     {
57         $this->contents[] = $content;
58         return key($this->contents);
59     }
60
61     /**
62      * Sets new content erasing previous one.ng key.
63      *
64      * @param $content New content. It can be a single component or an array of
65      *                 components.
66      *
67      * @todo Add an example.
68      */
69     function setContent($content)
70     {
71         if (is_array($content))
72         {
73             $this->contents = $content;
74         }
75         else
76         {
77             $this->contents = array ($content);
78         }
79     }
80
81     /**
82      * Gets a content.
83      *
84      * @param $raw If is true, this method will return the contents array, 
85      *             otherwise it will return a string as result of joining the 
86      *             array components.
87      *
88      * @return mixed
89      * @todo Add an example.
90      */
91     function getContent($raw = false)
92     {
93         if ($raw)
94         {
95             return $this->contents;            
96         }
97         else
98         {
99             $output = '';
100             foreach ($this->contents as $content)
101             {
102                 if (is_object($content))
103                 {
104                     $output .= $content->__toString();
105                 }
106                 else
107                 {
108                     $output .= $content;  
109                 }
110             }
111         }
112     }
113 }
114 ?>