X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/3f3468089fcbc67d5d6c1f5fa9df4a000e116cfc..ea2811f6466500bc034b1c7a29a8ba75b1b490d4:/HTML/php/Tabla.php?ds=sidebyside diff --git a/HTML/php/Tabla.php b/HTML/php/Tabla.php index ae441c8..df56c44 100644 --- a/HTML/php/Tabla.php +++ b/HTML/php/Tabla.php @@ -57,34 +57,32 @@ class Tabla extends HTML_Table { * * @access public */ - function Tabla($attrs = '') + function Tabla($attrs = null) { $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion // Seteo los atributos para la tabla - $this->_attrs = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']); + $this->_attrs = $this->_conf['atributos']['tabla_comun']; //Genero el objeto HTML_Table - if ($attrs != '') { - $tmp = $this->_parseAttributes($attrs); - if (isset($tmp['width'])) { - $this->_attrs['width'] = $tmp['width']; + if (is_string($attrs)) { + $attrs = $this->_parseAttributes($attrs); + } + if (is_array($attrs)) { + if (isset($attrs['width'])) { + $this->_attrs['width'] = $attrs['width']; } - if (isset($tmp['bgcolor'])) { - $this->_attrs['bgcolor'] = $tmp['bgcolor']; + if (isset($attrs['bgcolor'])) { + $this->_attrs['bgcolor'] = $attrs['bgcolor']; } - if (isset($tmp['cellspacing'])) { - $this->_attrs['cellspacing'] = $tmp['cellspacing']; + if (isset($attrs['cellspacing'])) { + $this->_attrs['cellspacing'] = $attrs['cellspacing']; } - if (isset($tmp['cellpadding'])) { - $this->_attrs['cellpadding'] = $tmp['cellpadding']; + if (isset($attrs['cellpadding'])) { + $this->_attrs['cellpadding'] = $attrs['cellpadding']; } } $this->HTML_Table($this->_attrs); - //Modifico los atributos de todas las tablas - //Hay que encontrar o hacer una funcion que setee los atributos para las futuras - //inserciones. } - /** * Agrega una fila del tipo Cabecera * @@ -129,7 +127,6 @@ class Tabla extends HTML_Table { return $this->addRow($contenido, 'comun'); } - /** * Modifica el atributo rowSpan a la celda pasada por parametro * @@ -175,7 +172,7 @@ class Tabla extends HTML_Table { return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"'); } - /** + /** * Setea una columna como del tipo cabecera * * @param int $columna @@ -265,7 +262,8 @@ class Tabla extends HTML_Table { $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']); $tmp['width'] = $this->_attrs['width']; $tabla_externa = new HTML_Table($tmp); - $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']); + $tabla_externa->setCellContents(0, 0, parent::toHtml()); + $tabla_externa->setCellAttributes(0, 0, $this->_conf['atributos']['celda_comun']); $result = $tabla_externa->toHtml(); } else { @@ -275,7 +273,6 @@ class Tabla extends HTML_Table { return $result; } - /** * Cambia las propiedades de una celda * @@ -291,7 +288,7 @@ class Tabla extends HTML_Table { */ function updateCellAttributes($row, $col, $attrs) { - return parent::updateCellAttributes($row, $col, $this->_attrToString($attrs)); + return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs)); } /** @@ -309,7 +306,7 @@ class Tabla extends HTML_Table { */ function setCellAttributes($row, $col, $attrs) { - return parent::setCellAttributes($row, $col, $this->_attrToString($attrs)); + return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs)); } /** @@ -327,7 +324,7 @@ class Tabla extends HTML_Table { */ function addRow($content, $attrs = 'comun') { - return parent::addRow($content,$attrs); + return parent::addRow($content, $attrs); } /** @@ -341,26 +338,26 @@ class Tabla extends HTML_Table { * @return string * @access private */ - function _attrToString($attrs) + function _translateAttributes($attrs) { - $rta = ''; if (!$attrs) { return array(); } if (is_string($attrs)) { $attrs = $this->_parseAttributes($attrs); } + #$rta = array(); + $rta = $this->_conf['atributos']['celda_comun']; + #$sin_estilo = true; foreach ($attrs as $attr => $val) { $attr = strtolower($attr); switch ($attr) { + // Estilos de celda case 'comun': - $rta.=$this->_conf['atributos']['celda_comun']; - break; case 'cabecera': - $rta.=$this->_conf['atributos']['celda_cabecera']; - break; case 'titulo': - $rta.=$this->_conf['atributos']['celda_titulo']; + #$sin_estilo = false; + $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]); break; case 'align': case 'valign': @@ -369,25 +366,31 @@ class Tabla extends HTML_Table { case 'rowspan': case 'colspan': case 'bgcolor': - case 'cellspacing': - case 'cellpadding': case 'class': case 'border': - $rta.="$attr=\"$val\""; + case 'cellspacing': + case 'cellpadding': + $rta[$attr] = $val; break; case 'spacing': case 'padding': - $rta.="cell$attr=\"$val\""; + $rta["cell$attr"] = $val; break; case 'nowrap': case 'th': - $rta.="$attr"; + $rta[$attr] = ''; break; default: - trigger_error("No se puede setear el atributo $attr", E_USER_ERROR); + trigger_error("No se permite setear el atributo $attr", E_USER_ERROR); } } + // Si no tiene estilo, agrego estilo comun. + #if ($sin_estilo) { + #$rta = $this->_conf['atributos']['celda_comun']; + #} return $rta; } -} + +} + ?>