X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/fec9433041fde792aecee7e8456c1e79b1c16f4f..dee12e5810156419e529dc20c5515f8a82b1acea:/lib/MECON/HTML/Tabla.php?ds=sidebyside diff --git a/lib/MECON/HTML/Tabla.php b/lib/MECON/HTML/Tabla.php index 14147b0..cd14896 100644 --- a/lib/MECON/HTML/Tabla.php +++ b/lib/MECON/HTML/Tabla.php @@ -30,7 +30,6 @@ require_once 'HTML/Table.php'; * Libreria para le manejo de las tablas de los sistemas de intranet. * */ - class MECON_HTML_Tabla extends HTML_Table { /** @@ -63,7 +62,8 @@ class MECON_HTML_Tabla extends HTML_Table { */ function MECON_HTML_Tabla($attrs = null, $estilo = 'comun') { - $this->_conf = include 'MECON/HTML/Tabla/estilo_'.$estilo.'.php'; // Obtengo los valores particulares de configuracion + // Obtengo los valores particulares de configuracion. + $this->_conf = include(dirname(__FILE__) . '/Tabla/estilo_' . $estilo . '.php'); // Seteo los atributos para la tabla $this->_attrs = $this->_conf['atributos']['tabla_comun']; //Genero el objeto HTML_Table @@ -85,6 +85,10 @@ class MECON_HTML_Tabla extends HTML_Table { } } $this->HTML_Table($this->_attrs); + if (isset($attrs['align'])) { + $this->_attrs['align'] = $attrs['align']; + } + } /** @@ -256,12 +260,14 @@ class MECON_HTML_Tabla extends HTML_Table { */ function toHtml($simple = 0) { + // Agregar la tabla de fondo. if ($simple) { $result = parent::toHtml(); } else { $contenedora = $this->_conf['atributos']['tabla_contenedora']; $contenedora['width'] = $this->getAttribute('width'); + $contenedora['align'] = $this->_attrs['align']; $this->updateAttributes(array('width' => '100%')); $tabla_externa = new HTML_Table($contenedora); $tabla_externa->addRow(array(parent::toHtml()), @@ -287,7 +293,7 @@ class MECON_HTML_Tabla extends HTML_Table { */ function updateCellAttributes($row, $col, $attrs) { - return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs)); + return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs, false)); } /** @@ -305,7 +311,7 @@ class MECON_HTML_Tabla extends HTML_Table { */ function setCellAttributes($row, $col, $attrs) { - return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs)); + return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs, true)); } /** @@ -332,12 +338,13 @@ class MECON_HTML_Tabla extends HTML_Table { * Convierte un atributo HTML al string para pasar a los metodos de HTML_Table * Recibe en $attrs los atributos a modificar. * - * @param string $attrs Atributos + * @param mixed $attrs Atributos. + * @param bool $isSet Indica si hay que setear. * - * @return string + * @return array * @access private */ - function _translateAttributes($attrs) + function _translateAttributes($attrs, $isSet) { if (!$attrs) { return array(); @@ -345,9 +352,11 @@ class MECON_HTML_Tabla extends HTML_Table { if (is_string($attrs)) { $attrs = $this->_parseAttributes($attrs); } - #$rta = array(); - $rta = $this->_conf['atributos']['celda_comun']; - #$sin_estilo = true; + if ($isSet) { + $rta = $this->_conf['atributos']['celda_comun']; + } else { + $rta = array(); + } foreach ($attrs as $attr => $val) { $attr = strtolower($attr); switch ($attr) { @@ -355,7 +364,6 @@ class MECON_HTML_Tabla extends HTML_Table { case 'comun': case 'cabecera': case 'titulo': - #$sin_estilo = false; $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]); break; case 'align': @@ -383,13 +391,18 @@ class MECON_HTML_Tabla extends HTML_Table { 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; } + /** + * Obtiene la Cascade Style Sheet para esta tabla. + * + * @return string Path 'web' a la css. + */ + function getCSS() { + return $this->_conf['css']; + } + } ?>