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 * Objeto tabla que voy a utilizar
44 * @var Object HTML_Table
49 * Atributos de las tablas.
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.
62 * @param $atributos Atributos diferentes a los estandares para la
67 function Tabla ($atributos = '')
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'];
78 if (isset($tmp['bgcolor'])) {
79 $this->_atribTabla['bgcolor'] = $tmp['bgcolor'];
81 if (isset($tmp['cellspacing'])) {
82 $this->_atribTabla['cellspacing'] = $tmp['cellspacing'];
84 if (isset($tmp['cellpadding'])) {
85 $this->_atribTabla['cellpadding'] = $tmp['cellpadding'];
88 $this->HTML_Table($this->_atribTabla);
89 //Modifico los atributos de todas las tablas
90 //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
96 * Agrega una fila del tipo Cabecera
98 * Agrega una fila del tipo cabecera, tomando colores y demas del
99 * archivo de configuracion. Recibe como parametro un array con
100 * los datos a incluir en la linea. Agrega tantas columnas como
101 * elementos tenga el array. Si no recibe parametro alguno,
102 * inserta una fila en blanco. Devuelve el identificador de la
103 * fila en donde inserto los datos.
105 * @param $contenido Contenido de la fila
107 * @return int Identificador de Linea
112 function agregarFilaCabecera ($contenido = '', $atributos = '')
114 return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH');
118 * Agrega una fila del tipo Comun
120 * Agrega una fila del tipo comun, tomando colores y demas del
121 * archivo de configuracion. Recibe como parametro un array con
122 * los datos a incluir en la linea. Agrega tantas columnas como
123 * elementos tenga el array. Si no recibe parametro alguno,
124 * inserta una fila en blanco. Devuelve el identificador de la
125 * fila en donde inserto los datos.
127 * @param $contenido Contenido de la fila
129 * @return int Identificador de Linea
134 function agregarFila ($contenido = '')
136 return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
141 * Modifica el atributo rowSpan a la celda pasada por parametro
144 * @param int $columna
150 function rowSpan ($fila, $columna, $valor)
152 return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
156 * Modifica el atributo colSpan a la celda pasada por parametro
159 * @param int $columna
165 function colSpan ($fila, $columna, $valor)
167 return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
171 * Modifica el atributo aling de la celda pasada por parametro
174 * @param int $columna
175 * @param string $valor (left, center, right...)
180 function align ($fila, $columna, $valor)
182 return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
186 * Setea una columna como del tipo cabecera
188 * @param int $columna
193 function setColCabecera ($columna)
195 return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']);
199 * Setea una columna como del tipo titulo
201 * @param int $columna
206 function setColTitulo ($columna)
208 return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_titulo']);
212 * Alinea una columna entera
214 * @param int $columna
215 * @param string $valor
220 function setColAlign ($columna, $valor)
222 return $this->updateColAttributes($columna,'align="'.$valor.'"');
226 * Cambia el tamanio de una columna entera
228 * @param int $columna
229 * @param string $valor
234 function setColWidth ($columna, $valor)
236 return $this->updateColAttributes($columna,'width="'.$valor.'"');
240 * Cambia el color de fondo de una celda
243 * @param int $columna
244 * @param string $valor
249 function setCellBgcolor ($fila, $columna, $valor)
251 return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
255 * Devuelve el html de la tabla
257 * Devuelve el html de la tabla para que sea mostrado.
258 * Como parametro recibe el indicador de tabla simple.
259 * Si doble es 0, devuelve el html comun y corriente, si es
260 * distinto de 0 devuelve una tabla sola
264 * @return string Html
268 function toHtml ($doble = 0)
270 // Agregar la tabla de fondo.
272 $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
273 $tmp['width'] = $this->_atribTabla['width'];
274 $tabla_externa = new HTML_Table($tmp);
275 $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
276 $result = $tabla_externa->toHtml();
279 $result = parent::toHtml();
286 * Funcion que establece los atributos de una columna
289 * @param string $attr
293 function setColAttributes ($col, $attr)
299 * Funcion que establece los atributos de una fila
302 * @param string $attr
306 function setRowAttributes ($row, $attr)
312 * Funcion que establece los atributos de una celda
316 * @param string $attr
320 function setCellAttributes ($row, $col, $attr)
326 * Funcion que agrega una fila
328 * @param array $content
329 * @param string $attr
335 function addRow ($content, $attr = null)
343 * Funcion que agrega contenido a una celda
347 * @param array $content
348 * @param string $attr
352 function setCellContents ($row, $col, $content, $attr = null)