]> git.llucax.com Git - mecon/meconlib.git/blob - HTML/php/Tabla.php
a635c429096664c3be451c30e658aecaaff187e4
[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      * Atributos de las tablas.
43      *
44      * @var array
45      */
46     var $_attrs;
47
48     /**
49      * Constructor. 
50      *
51      * Puede recibir como parametro un string con los atributos que se 
52      * quieren dar a la tabla en cuestion. Estos atributos estan
53      * seteados por default segun el archivo de configuracion.
54      *
55      * @param $atributos Atributos diferentes a los estandares para la
56      * tabla
57      * 
58      * @access public
59      */
60     function Tabla($attrs = '') 
61     {
62         $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion
63         // Seteo los atributos para la tabla
64         $this->_attrs = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']);
65         //Genero el objeto HTML_Table
66         if ($atributos != '') {
67             $tmp = $this->_parseAttributes($atributos);
68             if (isset($tmp['width'])) {
69                 $this->_attrs['width'] = $tmp['width'];
70             }
71             if (isset($tmp['bgcolor'])) {
72                 $this->_attrs['bgcolor'] = $tmp['bgcolor'];
73             }
74             if (isset($tmp['cellspacing'])) {
75                 $this->_attrs['cellspacing']  = $tmp['cellspacing'];
76             }            
77             if (isset($tmp['cellpadding'])) {
78                 $this->_attrs['cellpadding']  = $tmp['cellpadding'];
79             }            
80         }        
81         $this->HTML_Table($this->_attrs);
82         //Modifico los atributos de todas las tablas
83         //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
84         //inserciones.
85     }    
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      * @deprecated
104      */
105     function agregarFilaCabecera($contenido = '', $atributos = '')
106     {
107         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
108         // addRow($content, HTML_TABLA_HEADER)
109         return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH');
110     }
111
112     /**                 
113      * Agrega una fila del tipo Comun
114      *
115      * Agrega una fila del tipo comun, tomando colores y demas del  
116      * archivo de configuracion. Recibe como parametro un array con 
117      * los datos a incluir en la linea. Agrega tantas columnas como
118      * elementos tenga el array. Si no recibe parametro alguno, 
119      * inserta una fila en blanco. Devuelve el identificador de la
120      * fila en donde inserto los datos.
121      *
122      * @param $contenido Contenido de la fila
123      *
124      * @return int Identificador de Linea
125      * 
126      * @access public
127      * @deprecated
128      */
129     function agregarFila($contenido = '')
130     {
131         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
132         // addRow($content)
133         return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
134     }
135
136
137     /**                 
138      * Modifica el atributo rowSpan a la celda pasada por parametro
139      *
140      * @param int $fila
141      * @param int $columna
142      * @param int $valor
143      * 
144      * @access public
145      * @deprecated
146      */
147     function rowSpan($fila, $columna, $valor)
148     {
149         return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
150     }
151
152     /**                 
153      * Modifica el atributo colSpan a la celda pasada por parametro
154      *
155      * @param int $fila
156      * @param int $columna
157      * @param int $valor
158      * 
159      * @access public
160      * @deprecated
161      */
162     function colSpan($fila, $columna, $valor)
163     {
164         return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
165     }
166
167     /**                 
168      * Modifica el atributo aling de la celda pasada por parametro
169      *
170      * @param int $fila
171      * @param int $columna
172      * @param string $valor (left, center, right...)
173      * 
174      * @access public
175      * @deprecated
176      */
177     function align($fila, $columna, $valor)
178     {
179         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
180         // setCell($row, $col, HTML_TABLA_ALIGN_LEFT) [o .._CENTER o .._RIGHT]
181         return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
182     }
183
184     /**                 
185      * Setea una columna como del tipo cabecera    
186      *
187      * @param int $columna
188      * 
189      * @access public
190      * @deprecated
191      */
192     function setColCabecera($columna)
193     {
194         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
195         // setCol($col, HTML_TABLA_HEADER)
196         return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']);
197     }
198
199     /**                 
200      * Setea una columna como del tipo titulo
201      *
202      * @param int $columna
203      * 
204      * @access public
205      * @deprecated
206      */
207     function setColTitulo($columna)
208     {
209         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
210         // setCol($col, HTML_TABLA_TITLE)
211         return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_titulo']);
212     }
213
214     /**                 
215      * Alinea una columna entera  
216      *
217      * @param int $columna
218      * @param string $valor
219      * 
220      * @access public
221      * @deprecated
222      */
223     function setColAlign($columna, $valor)
224     {
225         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
226         // setCol($col, HTML_TABLA_ALIGN_*)
227         return $this->updateColAttributes($columna,'align="'.$valor.'"');
228     }
229
230     /**                 
231      * Cambia el tamanio de una columna entera  
232      *
233      * @param int $columna
234      * @param string $valor
235      * 
236      * @access public
237      * @deprecated
238      */
239     function setColWidth($columna, $valor)
240     {
241         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
242         // setCol($col, HTML_TABLA_WIDTH, $val)
243         return $this->updateColAttributes($columna,'width="'.$valor.'"');
244     }
245
246     /**                 
247      * Cambia el color de fondo de una celda  
248      *
249      * @param int $fila
250      * @param int $columna
251      * @param string $valor
252      *
253      * @access public
254      * @deprecated
255      */
256     function setCellBgcolor($fila, $columna, $valor)
257     {
258         // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
259         // setCell($row, $col, HTML_TABLA_BGCOLOR, $val)
260         return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
261     }
262
263     /**                 
264      * Devuelve el html de la tabla
265      *
266      * Devuelve el html de la tabla para que sea mostrado.
267      * Como parametro recibe el indicador de tabla simple.
268      * Si $simple es falso, devuelve el html comun y corriente (con 2
269      * tablas), si es false devuelve una tabla sola.
270      *
271      * @param bool $simple
272      *
273      * @return string Html
274      * 
275      * @access public
276      */
277     function toHtml($simple = 0)
278     {
279         // Agregar la tabla de fondo.
280         if ($simple == 0) {
281             $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
282             $tmp['width'] = $this->_attrs['width'];
283             $tabla_externa =  new HTML_Table($tmp);
284             $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
285             $result = $tabla_externa->toHtml();    
286         }
287         else {
288             $result = parent::toHtml();
289         }
290
291         return $result;
292     }
293
294     /**
295      * Cambia las propiedades de una columna.
296      * 
297      * Cambia las propiedades de una columna. Si $attrs es un array
298      * asociativo, se setean los atributos representados por las claves
299      * con los valores. En este caso se ignora el tercer parametro ($val).
300      * Si $attrs es un string, se setea el atributo descripto por $attrs
301      * al valor $val.
302      *
303      * @param int $col
304      * @param mixed $attrs
305      * @param mixed $val
306      * 
307      * @access public
308      */
309     function setCol($col, $attrs, $val = true)
310     {
311         if (!is_array($attrs)) {}
312             $attrs = array($attrs => $val);
313         }
314         foreach ($attrs as $attr => $val) {
315             // El switch se puede reciclar y hacer un metodo generico...
316             switch (strtoupper($attr)) {
317                 case 'HEADER':
318                     return $this->updateColAttributes($col, $this->_conf['atributos']['celda_cabecera']);
319                 case 'ALIGN':
320                     return $this->updateColAttributes($col,"align=\"$val\"");
321                 case 'WIDTH':
322                     return $this->updateColAttributes($col,"width=\"$val\"");
323                 default:
324                     trigger_error("No se puede setear el atributo $attr a la columna $col", E_USER_ERROR);
325             }
326         }
327     }
328     
329     /**
330      * Funcion que establece los atributos de una fila
331      *
332      * @param int $row
333      * @param string $attrs
334      * 
335      * @access public
336      */
337     function setRow($row, $attrs, $val = true)
338     {
339     
340     }
341     
342     /**
343      * Funcion que establece los atributos de una celda
344      *
345      * @param int $row
346      * @param int $col
347      * @param string $attr
348      *
349      * @access public
350      */
351     function setCell($row, $col, $attrs, $val = true) 
352     {
353     
354     }
355
356     /**
357      * Funcion que agrega una fila
358      *
359      * @param array $content
360      * @param string $attr
361      *
362      * @return int $rowId
363      *
364      * @access public
365      */
366     function addRow($content, $attrs = '', $val = true)
367     {
368         $this->addRow
369         return $rowId
370     }
371     
372     /**
373      * Funcion que agrega contenido a una celda
374      *
375      * @param int $row
376      * @param int $col
377      * @param array $content
378      * @param string $attr
379      *
380      * @access public
381      */
382     function setCellContents($row, $col, $content, $attrs = '', $val = true)
383     {
384
385     }
386
387 }  
388 ?>