]> git.llucax.com Git - mecon/meconlib.git/blobdiff - HTML/php/Tabla.php
Se agrega la primera versiĆ³n preliminar de QuickForm Renderer que dibuja
[mecon/meconlib.git] / HTML / php / Tabla.php
index a635c429096664c3be451c30e658aecaaff187e4..ea34ea4438bf02a245dfc0697cc5824df9f7d58c 100644 (file)
@@ -63,8 +63,8 @@ class Tabla extends HTML_Table {
         // Seteo los atributos para la tabla
         $this->_attrs = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']);
         //Genero el objeto HTML_Table
-        if ($atributos != '') {
-            $tmp = $this->_parseAttributes($atributos);
+        if ($attrs != '') {
+            $tmp = $this->_parseAttributes($attrs);
             if (isset($tmp['width'])) {
                 $this->_attrs['width'] = $tmp['width'];
             }
@@ -84,7 +84,6 @@ class Tabla extends HTML_Table {
         //inserciones.
     }    
 
-
     /**                 
      * Agrega una fila del tipo Cabecera
      *
@@ -104,9 +103,7 @@ class Tabla extends HTML_Table {
      */
     function agregarFilaCabecera($contenido = '', $atributos = '')
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // addRow($content, HTML_TABLA_HEADER)
-        return $this->addRow($contenido, $this->_conf['atributos']['celda_cabecera'],'TH');
+        return $this->addRow($contenido, 'cabecera');
     }
 
     /**                 
@@ -128,12 +125,9 @@ class Tabla extends HTML_Table {
      */
     function agregarFila($contenido = '')
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // addRow($content)
-        return $this->addRow($contenido,$this->_conf['atributos']['celda_comun']);
+        return $this->addRow($contenido, 'comun');
     }
 
-
     /**                 
      * Modifica el atributo rowSpan a la celda pasada por parametro
      *
@@ -146,7 +140,7 @@ class Tabla extends HTML_Table {
      */
     function rowSpan($fila, $columna, $valor)
     {
-        return $this->updateCellAttributes($fila, $columna, 'rowspan='.$valor);
+        return $this->updateCellAttributes($fila, $columna, 'rowspan="'.$valor.'"');
     }
 
     /**                 
@@ -161,7 +155,7 @@ class Tabla extends HTML_Table {
      */
     function colSpan($fila, $columna, $valor)
     {
-        return $this->updateCellAttributes($fila, $columna, 'colspan='.$valor);
+        return $this->updateCellAttributes($fila, $columna, 'colspan="'.$valor.'"');
     }
 
     /**                 
@@ -176,12 +170,10 @@ class Tabla extends HTML_Table {
      */
     function align($fila, $columna, $valor)
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // setCell($row, $col, HTML_TABLA_ALIGN_LEFT) [o .._CENTER o .._RIGHT]
         return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
     }
 
-    /**                 
+    /**
      * Setea una columna como del tipo cabecera    
      *
      * @param int $columna
@@ -191,9 +183,7 @@ class Tabla extends HTML_Table {
      */
     function setColCabecera($columna)
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // setCol($col, HTML_TABLA_HEADER)
-        return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_cabecera']);
+        return $this->updateColAttributes($columna, 'cabecera');
     }
 
     /**                 
@@ -206,9 +196,7 @@ class Tabla extends HTML_Table {
      */
     function setColTitulo($columna)
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // setCol($col, HTML_TABLA_TITLE)
-        return $this->updateColAttributes($columna,$this->_conf['atributos']['celda_titulo']);
+        return $this->updateColAttributes($columna, 'titulo');
     }
 
     /**                 
@@ -222,8 +210,6 @@ class Tabla extends HTML_Table {
      */
     function setColAlign($columna, $valor)
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // setCol($col, HTML_TABLA_ALIGN_*)
         return $this->updateColAttributes($columna,'align="'.$valor.'"');
     }
 
@@ -238,8 +224,6 @@ class Tabla extends HTML_Table {
      */
     function setColWidth($columna, $valor)
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // setCol($col, HTML_TABLA_WIDTH, $val)
         return $this->updateColAttributes($columna,'width="'.$valor.'"');
     }
 
@@ -255,8 +239,6 @@ class Tabla extends HTML_Table {
      */
     function setCellBgcolor($fila, $columna, $valor)
     {
-        // FIXME - aca hay que llamar a la nueva funcion "no deprecated":
-        // setCell($row, $col, HTML_TABLA_BGCOLOR, $val)
         return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
     }
 
@@ -292,97 +274,119 @@ class Tabla extends HTML_Table {
     }
 
     /**
-     * Cambia las propiedades de una columna.
-     * 
-     * Cambia las propiedades de una columna. Si $attrs es un array
+     * 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. En este caso se ignora el tercer parametro ($val).
-     * Si $attrs es un string, se setea el atributo descripto por $attrs
-     * al valor $val.
+     * con los valores.
      *
+     * @param int $row
      * @param int $col
      * @param mixed $attrs
-     * @param mixed $val
-     * 
-     * @access public
-     */
-    function setCol($col, $attrs, $val = true)
-    {
-        if (!is_array($attrs)) {}
-            $attrs = array($attrs => $val);
-        }
-        foreach ($attrs as $attr => $val) {
-            // El switch se puede reciclar y hacer un metodo generico...
-            switch (strtoupper($attr)) {
-                case 'HEADER':
-                    return $this->updateColAttributes($col, $this->_conf['atributos']['celda_cabecera']);
-                case 'ALIGN':
-                    return $this->updateColAttributes($col,"align=\"$val\"");
-                case 'WIDTH':
-                    return $this->updateColAttributes($col,"width=\"$val\"");
-                default:
-                    trigger_error("No se puede setear el atributo $attr a la columna $col", E_USER_ERROR);
-            }
-        }
-    }
-    
-    /**
-     * Funcion que establece los atributos de una fila
      *
-     * @param int $row
-     * @param string $attrs
-     * 
      * @access public
      */
-    function setRow($row, $attrs, $val = true)
+    function updateCellAttributes($row, $col, $attrs)
     {
-    
+        return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs));
     }
-    
+
     /**
-     * Funcion que establece los atributos de una celda
+     * 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 string $attr
+     * @param mixed $attrs
      *
      * @access public
      */
-    function setCell($row, $col, $attrs, $val = true) 
+    function setCellAttributes($row, $col, $attrs)
     {
-    
+        return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs));
     }
 
     /**
-     * Funcion que agrega una fila
+     * 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 array $content
-     * @param string $attr
+     * @param mixed $content
+     * @param mixed $attrs
      *
      * @return int $rowId
      *
      * @access public
      */
-    function addRow($content, $attrs = '', $val = true)
+    function addRow($content, $attrs = 'comun')
     {
-        $this->addRow
-        return $rowId
+        return parent::addRow($content, $attrs);
     }
     
     /**
-     * Funcion que agrega contenido a una celda
+     * 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 int $row
-     * @param int $col
-     * @param array $content
-     * @param string $attr
+     * @param string $attrs
      *
-     * @access public
+     * @return string
+     * @access private
      */
-    function setCellContents($row, $col, $content, $attrs = '', $val = true)
+    function _translateAttributes($attrs) 
     {
-
+        if (!$attrs) {
+            return array();
+        }
+        if (is_string($attrs)) {
+            $attrs = $this->_parseAttributes($attrs);
+        }
+        $rta = '';
+        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 '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);
+            }
+        }
+        return $rta;
     }
 
-}  
+}
+
 ?>