From 3f3468089fcbc67d5d6c1f5fa9df4a000e116cfc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Wed, 4 Jun 2003 19:35:37 +0000 Subject: [PATCH] - Cambio de api --- HTML/php/Tabla.php | 167 +++++++++++++++++++------------------ HTML/test/prueba_tabla.php | 53 ++++++++++-- 2 files changed, 130 insertions(+), 90 deletions(-) diff --git a/HTML/php/Tabla.php b/HTML/php/Tabla.php index a635c42..ae441c8 100644 --- a/HTML/php/Tabla.php +++ b/HTML/php/Tabla.php @@ -63,8 +63,8 @@ class Tabla extends HTML_Table { // Seteo los atributos para la tabla $this->_attrs = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']); //Genero el objeto HTML_Table - if ($atributos != '') { - $tmp = $this->_parseAttributes($atributos); + if ($attrs != '') { + $tmp = $this->_parseAttributes($attrs); if (isset($tmp['width'])) { $this->_attrs['width'] = $tmp['width']; } @@ -104,9 +104,7 @@ class Tabla extends HTML_Table { */ function agregarFilaCabecera($contenido = '', $atributos = '') { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // addRow($content, HTML_TABLA_HEADER) - return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH'); + return $this->addRow($contenido, 'cabecera'); } /** @@ -128,9 +126,7 @@ class Tabla extends HTML_Table { */ function agregarFila($contenido = '') { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // addRow($content) - return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']); + return $this->addRow($contenido, 'comun'); } @@ -146,7 +142,7 @@ class Tabla extends HTML_Table { */ function rowSpan($fila, $columna, $valor) { - return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor); + return $this->updateCellAttributes($fila, $columna, 'rowspan="'.$valor.'"'); } /** @@ -161,7 +157,7 @@ class Tabla extends HTML_Table { */ function colSpan($fila, $columna, $valor) { - return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor); + return $this->updateCellAttributes($fila, $columna, 'colspan="'.$valor.'"'); } /** @@ -176,8 +172,6 @@ class Tabla extends HTML_Table { */ function align($fila, $columna, $valor) { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // setCell($row, $col, HTML_TABLA_ALIGN_LEFT) [o .._CENTER o .._RIGHT] return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"'); } @@ -191,9 +185,7 @@ class Tabla extends HTML_Table { */ function setColCabecera($columna) { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // setCol($col, HTML_TABLA_HEADER) - return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']); + return $this->updateColAttributes($columna, 'cabecera'); } /** @@ -206,9 +198,7 @@ class Tabla extends HTML_Table { */ function setColTitulo($columna) { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // setCol($col, HTML_TABLA_TITLE) - return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_titulo']); + return $this->updateColAttributes($columna, 'titulo'); } /** @@ -222,8 +212,6 @@ class Tabla extends HTML_Table { */ function setColAlign($columna, $valor) { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // setCol($col, HTML_TABLA_ALIGN_*) return $this->updateColAttributes($columna,'align="'.$valor.'"'); } @@ -238,8 +226,6 @@ class Tabla extends HTML_Table { */ function setColWidth($columna, $valor) { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // setCol($col, HTML_TABLA_WIDTH, $val) return $this->updateColAttributes($columna,'width="'.$valor.'"'); } @@ -255,8 +241,6 @@ class Tabla extends HTML_Table { */ function setCellBgcolor($fila, $columna, $valor) { - // FIXME - aca hay que llamar a la nueva funcion "no deprecated": - // setCell($row, $col, HTML_TABLA_BGCOLOR, $val) return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"'); } @@ -291,98 +275,119 @@ class Tabla extends HTML_Table { return $result; } + /** - * Cambia las propiedades de una columna. - * - * Cambia las propiedades de una columna. Si $attrs es un array + * Cambia las propiedades de una celda + * + * Cambia las propiedades de una celda. Si $attrs es un array * asociativo, se setean los atributos representados por las claves - * con los valores. En este caso se ignora el tercer parametro ($val). - * Si $attrs es un string, se setea el atributo descripto por $attrs - * al valor $val. + * con los valores. * + * @param int $row * @param int $col * @param mixed $attrs - * @param mixed $val - * - * @access public - */ - function setCol($col, $attrs, $val = true) - { - if (!is_array($attrs)) {} - $attrs = array($attrs => $val); - } - foreach ($attrs as $attr => $val) { - // El switch se puede reciclar y hacer un metodo generico... - switch (strtoupper($attr)) { - case 'HEADER': - return $this->updateColAttributes($col, $this->_conf['atributos']['celda_cabecera']); - case 'ALIGN': - return $this->updateColAttributes($col,"align=\"$val\""); - case 'WIDTH': - return $this->updateColAttributes($col,"width=\"$val\""); - default: - trigger_error("No se puede setear el atributo $attr a la columna $col", E_USER_ERROR); - } - } - } - - /** - * Funcion que establece los atributos de una fila * - * @param int $row - * @param string $attrs - * * @access public */ - function setRow($row, $attrs, $val = true) + function updateCellAttributes($row, $col, $attrs) { - + return parent::updateCellAttributes($row, $col, $this->_attrToString($attrs)); } - + /** - * Funcion que establece los atributos de una celda + * Establece las propiedades de una celda + * + * Establece las propiedades de una celda. Si $attrs es un array + * asociativo, se setean los atributos representados por las claves + * con los valores. * * @param int $row * @param int $col - * @param string $attr + * @param mixed $attrs * * @access public */ - function setCell($row, $col, $attrs, $val = true) + function setCellAttributes($row, $col, $attrs) { - + return parent::setCellAttributes($row, $col, $this->_attrToString($attrs)); } /** - * Funcion que agrega una fila + * Agrega una fila * - * @param array $content - * @param string $attr + * Agrega una fila. El contenido es el que viene representado por + * el array $content. Recibe los atributos en la variable $attrs + * + * @param mixed $content + * @param mixed $attrs * * @return int $rowId * * @access public */ - function addRow($content, $attrs = '', $val = true) + function addRow($content, $attrs = 'comun') { - $this->addRow - return $rowId + return parent::addRow($content,$attrs); } /** - * Funcion que agrega contenido a una celda + * Convierte un atributo a string + * + * Convierte un atributo HTML al string para pasar a los metodos de HTML_Table + * Recibe en $attrs los atributos a modificar. * - * @param int $row - * @param int $col - * @param array $content - * @param string $attr + * @param string $attrs * - * @access public + * @return string + * @access private */ - function setCellContents($row, $col, $content, $attrs = '', $val = true) + function _attrToString($attrs) { - + $rta = ''; + if (!$attrs) { + return array(); + } + if (is_string($attrs)) { + $attrs = $this->_parseAttributes($attrs); + } + foreach ($attrs as $attr => $val) { + $attr = strtolower($attr); + switch ($attr) { + 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']; + break; + case 'align': + case 'valign': + case 'width': + case 'height': + case 'rowspan': + case 'colspan': + case 'bgcolor': + case 'cellspacing': + case 'cellpadding': + case 'class': + case 'border': + $rta.="$attr=\"$val\""; + break; + case 'spacing': + case 'padding': + $rta.="cell$attr=\"$val\""; + break; + case 'nowrap': + case 'th': + $rta.="$attr"; + break; + default: + trigger_error("No se puede setear el atributo $attr", E_USER_ERROR); + } + } + return $rta; } - } ?> diff --git a/HTML/test/prueba_tabla.php b/HTML/test/prueba_tabla.php index 2c3bc5f..ed58ad4 100644 --- a/HTML/test/prueba_tabla.php +++ b/HTML/test/prueba_tabla.php @@ -12,20 +12,29 @@ addRow($row,'cabecera'); + $row = array ('R1C0','R1C1','R1C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); + $TABLA2->addRow($row); + $row = array ('R2C0','R2C1','R2C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); + $TABLA2->addRow($row); + $row = array ('R3C0','R3C1','R3C2','R3C3','R3C4','R3C5','R3C6','R3C7','R3C8','R3C9'); + $TABLA2->addRow($row); + $tohtml = $TABLA2->toHtml(); + + print $tohtml."


"; + echo 'DEPRECATED
'; $TABLA = new Tabla ('width="500" align="right"'); - $row = array ('R0C0','R1C1','R1C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); - $TABLA->agregarFilaCabecera($row); - $row = array ('R1C0','R1C1','R1C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); $TABLA->agregarFila($row); - $row = array ('R2C0','R2C1','R2C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); $TABLA->agregarFila($row); - $row = array ('R3C0','R3C1','R3C2','R3C3','R3C4','R3C5','R3C6','R3C7','R3C8','R3C9'); $TABLA->agregarFila($row); @@ -37,10 +46,36 @@ $TABLA->colSpan(2, 4,2); $TABLA->colSpan(2, 6,2); $TABLA->colSpan(2, 8,2); - $TABLA->setColTitulo(2); - $tohtml = $TABLA->toHtml(); + + print $tohtml."


"; +/////////////////////////////////////////////////////////////////////////////////////////// + echo 'PRECATED
'; + $TABLA2 = new Tabla ('width="500" align="right"'); + $row = array ('R0C0','R1C1','R1C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); + $TABLA2->addRow($row,'cabecera'); + $row = array ('R1C0','R1C1','R1C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); + $TABLA2->addRow($row); + $row = array ('R2C0','R2C1','R2C2','R2C3','R2C4','R2C5','R2C6','R2C7','R2C8','R2C9'); + $TABLA2->addRow($row); + $row = array ('R3C0','R3C1','R3C2','R3C3','R3C4','R3C5','R3C6','R3C7','R3C8','R3C9'); + $TABLA2->addRow($row); + +$tmp = array ('colspan'=>2,'comun'=>true); + + $TABLA2->updateCellAttributes(0, 0,'colspan=10'); + $TABLA2->updateCellAttributes(1, 0,'rowspan=3'); + $TABLA2->updateCellAttributes(1, 1,'rowspan=3'); + $TABLA2->updateCellAttributes(1, 2,'colspan=8'); + $TABLA2->updateCellAttributes(2, 2,'colspan=2 titulo'); + $TABLA2->updateCellAttributes(2, 4,'colspan=2 cabecera'); + $TABLA2->updateCellAttributes(2, 6,$tmp); + $TABLA2->updateCellAttributes(2, 8,'colspan=2 cabecera'); + $TABLA2->updateColAttributes(9,'titulo'); + + + $tohtml = $TABLA2->toHtml(); print $tohtml; ?> -- 2.43.0