]> git.llucax.com Git - mecon/meconlib.git/blob - HTML/php/Tabla.php
(no commit message)
[mecon/meconlib.git] / HTML / php / Tabla.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                          HTML - TABLE                              |
5 // +--------------------------------------------------------------------+
6 // |   Libreria para la estandarizacion de los elementos html de los    |
7 // |                         de la Intranet                             |
8 // |                      Ministerio de Economía                        |
9 // +--------------------------------------------------------------------+
10 // | Creado: fri mar 21 ART 2003                                        |
11 // | Autor:  Martin Marrese <mmarre@mecon.gov.ar>                       |
12 // +--------------------------------------------------------------------+
13 // 
14 // $Id$
15 // 
16 // $URL$
17 // $Rev$
18 // $Date$
19 // $Author$
20
21 require_once 'HTML/Table.php';
22
23 /**
24 * Manejo de tablas.
25 *
26 * Libreria para le manejo de las tablas de los sistemas de intranet.
27 *
28 * @version $Rev$
29 * @author  $Author$
30 */
31
32 class Tabla extends HTML_Table {
33     
34     /**
35     * Valores de Configuracion particular
36     *
37     * @var array
38     */
39     var $_conf;
40     
41     /**
42     * Objeto tabla que voy a utilizar
43     *
44     * @var Object HTML_Table
45     */
46     var $_tabla;
47
48     /**
49      * Atributos de las tablas.
50      *
51      * @var array
52      */
53     var $_atribTabla;
54     
55     /**
56     * Constructor. 
57     *
58     * Puede recibir como parametro un string con los atributos que se 
59     * quieren dar a la tabla en cuestion. Estos atributos estan
60     * seteados por default segun el archivo de configuracion.
61     *
62     * @param $atributos Atributos diferentes a los estandares para la
63     * tabla
64     * 
65     * @access public
66     */
67     function Tabla ($atributos = '') 
68     {
69         $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion
70         // Seteo los atributos para la tabla
71         $this->_atribTabla = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']);
72         //Genero el objeto HTML_Table
73         if ($atributos != '') {
74             $tmp = $this->_parseAttributes($atributos);
75             if (isset($tmp['width'])) {
76                 $this->_atribTabla['width'] = $tmp['width'];
77             }
78             if (isset($tmp['bgcolor'])) {
79                 $this->_atribTabla['bgcolor'] = $tmp['bgcolor'];
80             }
81         }        
82         $this->HTML_Table($this->_atribTabla);
83         //Modifico los atributos de todas las tablas
84         //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
85         //inserciones.
86     }    
87     
88     /**                 
89     * Agrega una fila del tipo Cabecera
90     *
91     * Agrega una fila del tipo cabecera, tomando colores y demas del  
92     * archivo de configuracion. Recibe como parametro un array con 
93     * los datos a incluir en la linea. Agrega tantas columnas como
94     * elementos tenga el array. Si no recibe parametro alguno, 
95     * inserta una fila en blanco. Devuelve el identificador de la
96     * fila en donde inserto los datos.
97     *
98     * @param $contenido Contenido de la fila
99     *
100     * @return int Identificador de Linea
101     * 
102     * @access public
103     */
104     function agregarFilaCabecera ($contenido = '', $atributos = '')
105     {
106         return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH');
107     }
108
109     /**                 
110     * Agrega una fila del tipo Comun
111     *
112     * Agrega una fila del tipo comun, tomando colores y demas del  
113     * archivo de configuracion. Recibe como parametro un array con 
114     * los datos a incluir en la linea. Agrega tantas columnas como
115     * elementos tenga el array. Si no recibe parametro alguno, 
116     * inserta una fila en blanco. Devuelve el identificador de la
117     * fila en donde inserto los datos.
118     *
119     * @param $contenido Contenido de la fila
120     *
121     * @return int Identificador de Linea
122     * 
123     * @access public
124     */
125     function agregarFila ($contenido = '')
126     {
127         return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
128     }
129
130
131     /**                 
132     * Modifica el atributo rowSpan a la celda pasada por parametro
133     *
134     * @param int $fila
135     * @param int $columna
136     * @param int $valor
137     * 
138     * @access public
139     */
140     function rowSpan ($fila, $columna, $valor)
141     {
142         return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
143     }
144
145     /**                 
146     * Modifica el atributo colSpan a la celda pasada por parametro
147     *
148     * @param int $fila
149     * @param int $columna
150     * @param int $valor
151     * 
152     * @access public
153     */
154     function colSpan ($fila, $columna, $valor)
155     {
156         return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
157     }
158
159     /**                 
160     * Modifica el atributo aling de la celda pasada por parametro
161     *
162     * @param int $fila
163     * @param int $columna
164     * @param string $valor (left, center, right...)
165     * 
166     * @access public
167     */
168     function align ($fila, $columna, $valor)
169     {
170         return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
171     }
172
173     /**                 
174     * Setea una columna como del tipo cabecera    
175     *
176     * @param int $columna
177     * 
178     * @access public
179     */
180     function setColCabecera ($columna)
181     {
182         return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']);
183     }
184
185     /**                 
186     * Alinea una columna entera  
187     *
188     * @param int $columna
189     * @param strin $valor
190     * 
191     * @access public
192     */
193     function setColAlign ($columna, $valor)
194     {
195         return $this->updateColAttributes($columna,'align="'.$valor.'"');
196     }
197
198     /**                 
199     * Cambia el color de fondo de una celda  
200     *
201     * @param int $fila
202     * @param int $columna
203     * @param strin $valor
204     * 
205     * @access public
206     */
207     function setCellBgcolor ($fila, $columna, $valor)
208     {
209         return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
210     }
211
212     /**                 
213     * Devuelve el html de la tabla
214     *
215     * Devuelve el html de la tabla para que sea mostrado.
216     * Como parametro recibe el indicador de tabla simple.
217     * Si doble es 0, devuelve el html comun y corriente, si es
218     * distinto de 0 devuelve una tabla sola
219     *
220     * @param int $doble
221     *
222     * @return string Html
223     * 
224     * @access public
225     */
226     function toHtml ($doble = 0)
227     {
228         // Agregar la tabla de fondo.
229         if ($doble == 0 ) {
230             $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
231             $tmp['width'] = $this->_atribTabla['width'];
232             $tabla_externa =  new HTML_Table($tmp);
233             $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
234             $result = $tabla_externa->toHtml();    
235         }
236         else {
237             $result = parent::toHtml();
238         }
239
240         return $result;
241     }
242 }  
243 ?>