+ if ($simple == 0) {
+ $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']);
+ $result = $tabla_externa->toHtml();
+ }
+ else {
+ $result = parent::toHtml();
+ }
+
+ return $result;
+ }
+
+
+ /**
+ * 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->_attrToString($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->_attrToString($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 _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;