]> git.llucax.com Git - mecon/meconlib.git/blobdiff - HTML/php/Tabla.php
Algunas modificaciones para implementar la nueva API.
[mecon/meconlib.git] / HTML / php / Tabla.php
index ce736c52f4eabd7d17ecfcf92314218c29f24f93..a635c429096664c3be451c30e658aecaaff187e4 100644 (file)
 require_once 'HTML/Table.php';
 
 /**
 require_once 'HTML/Table.php';
 
 /**
-* Manejo de tablas.
-*
-* Libreria para le manejo de las tablas de los sistemas de intranet.
-*
-* @version $Rev$
-* @author  $Author$
-*/
+ * Manejo de tablas.
+ *
+ * Libreria para le manejo de las tablas de los sistemas de intranet.
+ *
+ * @version $Rev$
+ * @author  $Author$
+ */
 
 class Tabla extends HTML_Table {
 
 class Tabla extends HTML_Table {
-    
+
     /**
     /**
-    * Valores de Configuracion particular
-    *
-    * @var array
-    */
+     * Valores de Configuracion particular
+     *
+     * @var array
+     */
     var $_conf;
     var $_conf;
-    
-    /**
-    * Objeto tabla que voy a utilizar
-    *
-    * @var Object HTML_Table
-    */
-    var $_tabla;
 
     /**
      * Atributos de las tablas.
      *
      * @var array
      */
 
     /**
      * Atributos de las tablas.
      *
      * @var array
      */
-    var $_atribTabla;
-    
+    var $_attrs;
+
     /**
     /**
-    * Constructor. 
-    *
-    * Puede recibir como parametro un string con los atributos que se 
-    * quieren dar a la tabla en cuestion. Estos atributos estan
-    * seteados por default segun el archivo de configuracion.
-    *
-    * @param $atributos Atributos diferentes a los estandares para la
-    * tabla
-    * 
-    * @access public
-    */
-    function Tabla ($atributos = '') 
+     * Constructor. 
+     *
+     * Puede recibir como parametro un string con los atributos que se 
+     * quieren dar a la tabla en cuestion. Estos atributos estan
+     * seteados por default segun el archivo de configuracion.
+     *
+     * @param $atributos Atributos diferentes a los estandares para la
+     * tabla
+     
+     * @access public
+     */
+    function Tabla($attrs = '') 
     {
         $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion
         // Seteo los atributos para la tabla
     {
         $this->_conf = include 'Tabla/conf_Tabla.php'; // Obtengo los valores particulares de configuracion
         // Seteo los atributos para la tabla
-        $this->_atribTabla = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']);
+        $this->_attrs = $this->_parseAttributes($this->_conf['atributos']['tabla_comun']);
         //Genero el objeto HTML_Table
         if ($atributos != '') {
             $tmp = $this->_parseAttributes($atributos);
             if (isset($tmp['width'])) {
         //Genero el objeto HTML_Table
         if ($atributos != '') {
             $tmp = $this->_parseAttributes($atributos);
             if (isset($tmp['width'])) {
-                $this->_atribTabla['width'] = $tmp['width'];
+                $this->_attrs['width'] = $tmp['width'];
             }
             if (isset($tmp['bgcolor'])) {
             }
             if (isset($tmp['bgcolor'])) {
-                $this->_atribTabla['bgcolor'] = $tmp['bgcolor'];
+                $this->_attrs['bgcolor'] = $tmp['bgcolor'];
             }
             if (isset($tmp['cellspacing'])) {
             }
             if (isset($tmp['cellspacing'])) {
-                $this->_atribTabla['cellspacing']  = $tmp['cellspacing'];
+                $this->_attrs['cellspacing']  = $tmp['cellspacing'];
             }            
             if (isset($tmp['cellpadding'])) {
             }            
             if (isset($tmp['cellpadding'])) {
-                $this->_atribTabla['cellpadding']  = $tmp['cellpadding'];
+                $this->_attrs['cellpadding']  = $tmp['cellpadding'];
             }            
         }        
             }            
         }        
-        $this->HTML_Table($this->_atribTabla);
+        $this->HTML_Table($this->_attrs);
         //Modifico los atributos de todas las tablas
         //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
         //inserciones.
     }    
         //Modifico los atributos de todas las tablas
         //Hay que encontrar o hacer una funcion que setee los atributos para las futuras
         //inserciones.
     }    
-    
+
+
     /**                 
     /**                 
-    * Agrega una fila del tipo Cabecera
-    *
-    * Agrega una fila del tipo cabecera, tomando colores y demas del  
-    * archivo de configuracion. Recibe como parametro un array con 
-    * los datos a incluir en la linea. Agrega tantas columnas como
-    * elementos tenga el array. Si no recibe parametro alguno, 
-    * inserta una fila en blanco. Devuelve el identificador de la
-    * fila en donde inserto los datos.
-    *
-    * @param $contenido Contenido de la fila
-    *
-    * @return int Identificador de Linea
-    * 
-    * @access public
-    */
-    function agregarFilaCabecera ($contenido = '', $atributos = '')
+     * Agrega una fila del tipo Cabecera
+     *
+     * Agrega una fila del tipo cabecera, tomando colores y demas del  
+     * archivo de configuracion. Recibe como parametro un array con 
+     * los datos a incluir en la linea. Agrega tantas columnas como
+     * elementos tenga el array. Si no recibe parametro alguno, 
+     * inserta una fila en blanco. Devuelve el identificador de la
+     * fila en donde inserto los datos.
+     *
+     * @param $contenido Contenido de la fila
+     *
+     * @return int Identificador de Linea
+     * 
+     * @access public
+     * @deprecated
+     */
+    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, $this->_conf['atributos']['celda_cabecera'],'TH');
     }
 
     /**                 
-    * Agrega una fila del tipo Comun
-    *
-    * Agrega una fila del tipo comun, tomando colores y demas del  
-    * archivo de configuracion. Recibe como parametro un array con 
-    * los datos a incluir en la linea. Agrega tantas columnas como
-    * elementos tenga el array. Si no recibe parametro alguno, 
-    * inserta una fila en blanco. Devuelve el identificador de la
-    * fila en donde inserto los datos.
-    *
-    * @param $contenido Contenido de la fila
-    *
-    * @return int Identificador de Linea
-    * 
-    * @access public
-    */
-    function agregarFila ($contenido = '')
+     * Agrega una fila del tipo Comun
+     *
+     * Agrega una fila del tipo comun, tomando colores y demas del  
+     * archivo de configuracion. Recibe como parametro un array con 
+     * los datos a incluir en la linea. Agrega tantas columnas como
+     * elementos tenga el array. Si no recibe parametro alguno, 
+     * inserta una fila en blanco. Devuelve el identificador de la
+     * fila en donde inserto los datos.
+     *
+     * @param $contenido Contenido de la fila
+     *
+     * @return int Identificador de Linea
+     * 
+     * @access public
+     * @deprecated
+     */
+    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,$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)
+     * Modifica el atributo rowSpan a la celda pasada por parametro
+     *
+     * @param int $fila
+     * @param int $columna
+     * @param int $valor
+     * 
+     * @access public
+     * @deprecated
+     */
+    function rowSpan($fila, $columna, $valor)
     {
         return $this->updateCellAttributes($fila, $columna, 'rowspan='.$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)
+     * Modifica el atributo colSpan a la celda pasada por parametro
+     *
+     * @param int $fila
+     * @param int $columna
+     * @param int $valor
+     * 
+     * @access public
+     * @deprecated
+     */
+    function colSpan($fila, $columna, $valor)
     {
         return $this->updateCellAttributes($fila, $columna, 'colspan='.$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)
+     * Modifica el atributo aling de la celda pasada por parametro
+     *
+     * @param int $fila
+     * @param int $columna
+     * @param string $valor (left, center, right...)
+     * 
+     * @access public
+     * @deprecated
+     */
+    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.'"');
     }
 
     /**                 
         return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
     }
 
     /**                 
-    * Setea una columna como del tipo cabecera    
-    *
-    * @param int $columna
-    * 
-    * @access public
-    */
-    function setColCabecera ($columna)
+     * Setea una columna como del tipo cabecera    
+     *
+     * @param int $columna
+     * 
+     * @access public
+     * @deprecated
+     */
+    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,$this->_conf['atributos']['celda_cabecera']);
     }
 
     /**                 
-    * Setea una columna como del tipo titulo
-    *
-    * @param int $columna
-    * 
-    * @access public
-    */
-    function setColTitulo ($columna)
+     * Setea una columna como del tipo titulo
+     *
+     * @param int $columna
+     * 
+     * @access public
+     * @deprecated
+     */
+    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,$this->_conf['atributos']['celda_titulo']);
     }
- /**                 
-    * Alinea una columna entera  
-    *
-    * @param int $columna
-    * @param strin $valor
-    * 
-    * @access public
-    */
-    function setColAlign ($columna, $valor)
+
+    /**                 
+     * Alinea una columna entera  
+     *
+     * @param int $columna
+     * @param string $valor
+     * 
+     * @access public
+     * @deprecated
+     */
+    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.'"');
     }
 
     /**                 
         return $this->updateColAttributes($columna,'align="'.$valor.'"');
     }
 
     /**                 
-    * Cambia el tamanio de una columna entera  
-    *
-    * @param int $columna
-    * @param strin $valor
-    * 
-    * @access public
-    */
-    function setColWidth ($columna, $valor)
+     * Cambia el tamanio de una columna entera  
+     *
+     * @param int $columna
+     * @param string $valor
+     * 
+     * @access public
+     * @deprecated
+     */
+    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.'"');
     }
 
     /**                 
         return $this->updateColAttributes($columna,'width="'.$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)
+     * Cambia el color de fondo de una celda  
+     *
+     * @param int $fila
+     * @param int $columna
+     * @param string $valor
+     *
+     * @access public
+     * @deprecated
+     */
+    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.'"');
     }
 
     /**                 
         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 ($doble = 0)
+     * 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 $simple es falso, devuelve el html comun y corriente (con 2
+     * tablas), si es false devuelve una tabla sola.
+     *
+     * @param bool $simple
+     *
+     * @return string Html
+     
+     * @access public
+     */
+    function toHtml($simple = 0)
     {
         // Agregar la tabla de fondo.
     {
         // Agregar la tabla de fondo.
-        if ($doble == 0 ) {
+        if ($simple == 0) {
             $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
             $tmp = $this->_parseAttributes($this->_conf['atributos']['tabla_contenedora']);
-            $tmp['width'] = $this->_atribTabla['width'];
+            $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();    
             $tabla_externa =  new HTML_Table($tmp);
             $tabla_externa->setCellContents(0,0,parent::toHtml(),$this->_conf['atributos']['celda_comun']);
             $result = $tabla_externa->toHtml();    
@@ -270,5 +290,99 @@ class Tabla extends HTML_Table {
 
         return $result;
     }
 
         return $result;
     }
+
+    /**
+     * Cambia las propiedades de una columna.
+     * 
+     * Cambia las propiedades de una columna. 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.
+     *
+     * @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)
+    {
+    
+    }
+    
+    /**
+     * Funcion que establece los atributos de una celda
+     *
+     * @param int $row
+     * @param int $col
+     * @param string $attr
+     *
+     * @access public
+     */
+    function setCell($row, $col, $attrs, $val = true) 
+    {
+    
+    }
+
+    /**
+     * Funcion que agrega una fila
+     *
+     * @param array $content
+     * @param string $attr
+     *
+     * @return int $rowId
+     *
+     * @access public
+     */
+    function addRow($content, $attrs = '', $val = true)
+    {
+        $this->addRow
+        return $rowId
+    }
+    
+    /**
+     * Funcion que agrega contenido a una celda
+     *
+     * @param int $row
+     * @param int $col
+     * @param array $content
+     * @param string $attr
+     *
+     * @access public
+     */
+    function setCellContents($row, $col, $content, $attrs = '', $val = true)
+    {
+
+    }
+
 }  
 ?>
 }  
 ?>