* Libreria para le manejo de las tablas de los sistemas de intranet.
*
*/
-
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
}
}
$this->HTML_Table($this->_attrs);
+ if (isset($attrs['align'])) {
+ $this->_attrs['align'] = $attrs['align'];
+ }
+
}
/**
*/
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()),
*/
function updateCellAttributes($row, $col, $attrs)
{
- return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs));
+ return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs, false));
}
/**
*/
function setCellAttributes($row, $col, $attrs)
{
- return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs));
+ return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs, true));
}
/**
* 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();
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) {
case 'comun':
case 'cabecera':
case 'titulo':
- #$sin_estilo = false;
$rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]);
break;
case 'align':
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'];
+ }
+
}
?>