+
+ /**
+ * 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.
+ *
+ * @param int $row
+ * @param int $col
+ * @param mixed $attrs
+ *
+ * @access public
+ */
+ function updateCellAttributes($row, $col, $attrs)
+ {
+ return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs));
+ }
+
+ /**
+ * 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 mixed $attrs
+ *
+ * @access public
+ */
+ function setCellAttributes($row, $col, $attrs)
+ {
+ return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs));
+ }
+
+ /**
+ * Agrega una fila
+ *
+ * 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 = 'comun')
+ {
+ return parent::addRow($content, $attrs);
+ }
+
+ /**
+ * 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 string $attrs
+ *
+ * @return string
+ * @access private
+ */
+ function _translateAttributes($attrs)
+ {
+ 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':
+ case 'cabecera':
+ case 'titulo':
+ #$sin_estilo = false;
+ $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]);
+ break;
+ case 'align':
+ case 'valign':
+ case 'width':
+ case 'height':
+ case 'rowspan':
+ case 'colspan':
+ case 'bgcolor':
+ case 'class':
+ case 'border':
+ case 'cellspacing':
+ case 'cellpadding':
+ $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 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;
+ }
+
+}
+