2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
5 // +--------------------------------------------------------------------+
6 // | Libreria para la estandarizacion de los elementos html de los |
8 // | Ministerio de EconomÃa |
9 // +--------------------------------------------------------------------+
10 // | Creado: fri mar 21 ART 2003 |
11 // | Autor: Martin Marrese <mmarre@mecon.gov.ar> |
12 // +--------------------------------------------------------------------+
21 require_once 'HTML/Table.php';
26 * Libreria para le manejo de las tablas de los sistemas de intranet.
32 class Tabla extends HTML_Table {
35 * Valores de Configuracion particular
42 * Atributos de las tablas.
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.
55 * @param $atributos Atributos diferentes a los estandares para la
60 function Tabla($attrs = '')
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'];
71 if (isset($tmp['bgcolor'])) {
72 $this->_attrs['bgcolor'] = $tmp['bgcolor'];
74 if (isset($tmp['cellspacing'])) {
75 $this->_attrs['cellspacing'] = $tmp['cellspacing'];
77 if (isset($tmp['cellpadding'])) {
78 $this->_attrs['cellpadding'] = $tmp['cellpadding'];
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
89 * Agrega una fila del tipo Cabecera
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.
98 * @param $contenido Contenido de la fila
100 * @return int Identificador de Linea
105 function agregarFilaCabecera($contenido = '', $atributos = '')
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');
113 * Agrega una fila del tipo Comun
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.
122 * @param $contenido Contenido de la fila
124 * @return int Identificador de Linea
129 function agregarFila($contenido = '')
131 // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
133 return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
138 * Modifica el atributo rowSpan a la celda pasada por parametro
141 * @param int $columna
147 function rowSpan($fila, $columna, $valor)
149 return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
153 * Modifica el atributo colSpan a la celda pasada por parametro
156 * @param int $columna
162 function colSpan($fila, $columna, $valor)
164 return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
168 * Modifica el atributo aling de la celda pasada por parametro
171 * @param int $columna
172 * @param string $valor (left, center, right...)
177 function align($fila, $columna, $valor)
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.'"');
185 * Setea una columna como del tipo cabecera
187 * @param int $columna
192 function setColCabecera($columna)
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']);
200 * Setea una columna como del tipo titulo
202 * @param int $columna
207 function setColTitulo($columna)
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']);
215 * Alinea una columna entera
217 * @param int $columna
218 * @param string $valor
223 function setColAlign($columna, $valor)
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.'"');
231 * Cambia el tamanio de una columna entera
233 * @param int $columna
234 * @param string $valor
239 function setColWidth($columna, $valor)
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.'"');
247 * Cambia el color de fondo de una celda
250 * @param int $columna
251 * @param string $valor
256 function setCellBgcolor($fila, $columna, $valor)
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.'"');
264 * Devuelve el html de la tabla
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.
271 * @param bool $simple
273 * @return string Html
277 function toHtml($simple = 0)
279 // Agregar la tabla de fondo.
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();
288 $result = parent::toHtml();
295 * Cambia las propiedades de una columna.
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
304 * @param mixed $attrs
309 function setCol($col, $attrs, $val = true)
311 if (!is_array($attrs)) {}
312 $attrs = array($attrs => $val);
314 foreach ($attrs as $attr => $val) {
315 // El switch se puede reciclar y hacer un metodo generico...
316 switch (strtoupper($attr)) {
318 return $this->updateColAttributes($col, $this->_conf['atributos']['celda_cabecera']);
320 return $this->updateColAttributes($col,"align=\"$val\"");
322 return $this->updateColAttributes($col,"width=\"$val\"");
324 trigger_error("No se puede setear el atributo $attr a la columna $col", E_USER_ERROR);
330 * Funcion que establece los atributos de una fila
333 * @param string $attrs
337 function setRow($row, $attrs, $val = true)
343 * Funcion que establece los atributos de una celda
347 * @param string $attr
351 function setCell($row, $col, $attrs, $val = true)
357 * Funcion que agrega una fila
359 * @param array $content
360 * @param string $attr
366 function addRow($content, $attrs = '', $val = true)
373 * Funcion que agrega contenido a una celda
377 * @param array $content
378 * @param string $attr
382 function setCellContents($row, $col, $content, $attrs = '', $val = true)