*
* @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
*
return $this->addRow($contenido, 'comun');
}
-
/**
* Modifica el atributo rowSpan a la celda pasada por parametro
*
return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
}
- /**
+ /**
* Setea una columna como del tipo cabecera
*
* @param int $columna
$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 {
return $result;
}
-
/**
* Cambia las propiedades de una celda
*
*/
function updateCellAttributes($row, $col, $attrs)
{
- return parent::updateCellAttributes($row, $col, $this->_attrToString($attrs));
+ return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs));
}
/**
*/
function setCellAttributes($row, $col, $attrs)
{
- return parent::setCellAttributes($row, $col, $this->_attrToString($attrs));
+ return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs));
}
/**
*/
function addRow($content, $attrs = 'comun')
{
- return parent::addRow($content,$attrs);
+ return parent::addRow($content, $attrs);
}
/**
* @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':
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;
}
-}
+
+}
+
?>