]> git.llucax.com Git - mecon/meconlib.git/blobdiff - HTML/php/Tabla.php
(no commit message)
[mecon/meconlib.git] / HTML / php / Tabla.php
index 9b720a6e7f2bc8192e3860a42259f008bf0d9fb8..d028cd65bfc61bd0f6a31837a3034f332cf15f2c 100644 (file)
@@ -44,6 +44,13 @@ class Tabla extends HTML_Table {
     * @var Object HTML_Table
     */
     var $_tabla;
+
+    /**
+     * Atributos de las tablas.
+     *
+     * @var array
+     */
+    var $_atribTabla;
     
     /**
     * Constructor. 
@@ -61,15 +68,27 @@ class Tabla extends HTML_Table {
     {
         $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion
         // Seteo los atributos para la tabla
-        if (!strcmp($atributos,'')) {
-            $atributos = $this->_conf['atributos']['tabla_comun'];
-        }        
+        $this->_atribTabla = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']);
         //Genero el objeto HTML_Table
-        $this->HTML_Table($atributos);
+        if ($atributos != '') {
+            $tmp = $this->_parseAttributes($atributos);
+            if (isset($tmp['width'])) {
+                $this->_atribTabla['width'] = $tmp['width'];
+            }
+            if (isset($tmp['bgcolor'])) {
+                $this->_atribTabla['bgcolor'] = $tmp['bgcolor'];
+            }
+            if (isset($tmp['cellspacing'])) {
+                $this->_atribTabla['cellspacing']  = $tmp['cellspacing'];
+            }            
+            if (isset($tmp['cellpadding'])) {
+                $this->_atribTabla['cellpadding']  = $tmp['cellpadding'];
+            }            
+        }        
+        $this->HTML_Table($this->_atribTabla);
         //Modifico los atributos de todas las tablas
         //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
         //inserciones.
-    //    $this->setAllAttributes($this->_conf['atributos']['celda_comun']);
     }    
     
     /**                 
@@ -88,7 +107,7 @@ class Tabla extends HTML_Table {
     * 
     * @access public
     */
-    function agregarFilaCabecera ($contenido = '')
+    function agregarFilaCabecera ($contenido = '', $atributos = '')
     {
         return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH');
     }
@@ -114,21 +133,117 @@ class Tabla extends HTML_Table {
         return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
     }
 
+
+    /**                 
+    * Modifica el atributo rowSpan a la celda pasada por parametro
+    *
+    * @param int $fila
+    * @param int $columna
+    * @param int $valor
+    * 
+    * @access public
+    */
+    function rowSpan ($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
+    }
+
+    /**                 
+    * Modifica el atributo colSpan a la celda pasada por parametro
+    *
+    * @param int $fila
+    * @param int $columna
+    * @param int $valor
+    * 
+    * @access public
+    */
+    function colSpan ($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
+    }
+
+    /**                 
+    * Modifica el atributo aling de la celda pasada por parametro
+    *
+    * @param int $fila
+    * @param int $columna
+    * @param string $valor (left, center, right...)
+    * 
+    * @access public
+    */
+    function align ($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
+    }
+
+    /**                 
+    * Setea una columna como del tipo cabecera    
+    *
+    * @param int $columna
+    * 
+    * @access public
+    */
+    function setColCabecera ($columna)
+    {
+        return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']);
+    }
+
+    /**                 
+    * Alinea una columna entera  
+    *
+    * @param int $columna
+    * @param strin $valor
+    * 
+    * @access public
+    */
+    function setColAlign ($columna, $valor)
+    {
+        return $this->updateColAttributes($columna,'align="'.$valor.'"');
+    }
+
+    /**                 
+    * Cambia el color de fondo de una celda  
+    *
+    * @param int $fila
+    * @param int $columna
+    * @param strin $valor
+    * 
+    * @access public
+    */
+    function setCellBgcolor ($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
+    }
+
     /**                 
     * Devuelve el html de la tabla
     *
     * Devuelve el html de la tabla para que sea mostrado.
+    * Como parametro recibe el indicador de tabla simple.
+    * Si doble es 0, devuelve el html comun y corriente, si es
+    * distinto de 0 devuelve una tabla sola
+    *
+    * @param int $doble
     *
     * @return string Html
     * 
     * @access public
     */
-    function toHtml ()
+    function toHtml ($doble = 0)
     {
         // Agregar la tabla de fondo.
-        $tabla_externa =  new HTML_Table($this->_conf['atributos']['tabla_contenedora']);
-        $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
-        return $tabla_externa->toHtml();    
+        if ($doble == 0 ) {
+            $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
+            $tmp['width'] = $this->_atribTabla['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;
     }
 }  
 ?>