]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/HTML/Tabla.php
Se agrega prefijo a los estilos de arbol.
[mecon/meconlib.git] / lib / MECON / HTML / Tabla.php
index d67711ce3bbb9fb23a072c980d0d0e0f9b2726e7..cd1489624d59012fd6839bd040f92a13ca5f002b 100644 (file)
@@ -27,45 +27,43 @@ $Id$
 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.
  *
  * Libreria para le manejo de las tablas de los sistemas de intranet.
  *
- * @version $Rev$
- * @author  $Author$
  */
  */
-
-class Tabla extends HTML_Table {
-
+class MECON_HTML_Tabla extends HTML_Table {
+    
     /**
      * Valores de Configuracion particular
      *
     /**
      * Valores de Configuracion particular
      *
-     * @var array
+     * @var array() $conf
+     * @access protected
      */
     var $_conf;
 
     /**
      * Atributos de las tablas.
      *
      */
     var $_conf;
 
     /**
      * Atributos de las tablas.
      *
-     * @var array
+     * @var array() attrs
+     * @access protected
      */
     var $_attrs;
 
     /**
      * Constructor. 
      */
     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.
      * 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.
+     * Ademas puede recibir la indicacion de algun estilo en particular.
      *
      *
-     * @param $atributos Atributos diferentes a los estandares para la
-     * tabla
+     * @param mixed $atributos Atributos diferentes a los estandares para la tabla
+     * @param string $estilo Tipo de tabla
      * 
      * @access public
      */
      * 
      * @access public
      */
-    function Tabla($attrs = null
+    function MECON_HTML_Tabla($attrs = null, $estilo = 'comun'
     {
     {
-        $this->_conf = include 'MECON/HTML/Tabla/conf_Tabla.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
         // Seteo los atributos para la tabla
         $this->_attrs = $this->_conf['atributos']['tabla_comun'];
         //Genero el objeto HTML_Table
@@ -87,22 +85,23 @@ class Tabla extends HTML_Table {
             }            
         }        
         $this->HTML_Table($this->_attrs);
             }            
         }        
         $this->HTML_Table($this->_attrs);
+            if (isset($attrs['align'])) {
+                $this->_attrs['align'] = $attrs['align'];
+            }
+
     }    
 
     /**                 
     }    
 
     /**                 
-     * Agrega una fila del tipo Cabecera
-     *
-     * Agrega una fila del tipo cabecera, tomando colores y demas del  
+     * 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.
      *
      * 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
+     * @param array() $contenido Contenido de la fila
      *
      * @return int Identificador de Linea
      *
      * @return int Identificador de Linea
-     * 
      * @access public
      * @deprecated
      */
      * @access public
      * @deprecated
      */
@@ -112,8 +111,6 @@ class Tabla extends HTML_Table {
     }
 
     /**                 
     }
 
     /**                 
-     * 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
      * 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
@@ -121,7 +118,7 @@ class Tabla extends HTML_Table {
      * inserta una fila en blanco. Devuelve el identificador de la
      * fila en donde inserto los datos.
      *
      * inserta una fila en blanco. Devuelve el identificador de la
      * fila en donde inserto los datos.
      *
-     * @param $contenido Contenido de la fila
+     * @param array() $contenido Contenido de la fila
      *
      * @return int Identificador de Linea
      * 
      *
      * @return int Identificador de Linea
      * 
@@ -136,9 +133,9 @@ class Tabla extends HTML_Table {
     /**                 
      * Modifica el atributo rowSpan a la celda pasada por parametro
      *
     /**                 
      * Modifica el atributo rowSpan a la celda pasada por parametro
      *
-     * @param int $fila
-     * @param int $columna
-     * @param int $valor
+     * @param int $fila    Identificador de la fila que se quiere modificar
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * @param int $valor   Atributo a modificar
      * 
      * @access public
      * @deprecated
      * 
      * @access public
      * @deprecated
@@ -151,9 +148,9 @@ class Tabla extends HTML_Table {
     /**                 
      * Modifica el atributo colSpan a la celda pasada por parametro
      *
     /**                 
      * Modifica el atributo colSpan a la celda pasada por parametro
      *
-     * @param int $fila
-     * @param int $columna
-     * @param int $valor
+     * @param int $fila    Identificador de la fila que se quiere modificar    
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * @param int $valor   Atributo a modificar                               
      * 
      * @access public
      * @deprecated
      * 
      * @access public
      * @deprecated
@@ -166,9 +163,9 @@ class Tabla extends HTML_Table {
     /**                 
      * Modifica el atributo aling de la celda pasada por parametro
      *
     /**                 
      * Modifica el atributo aling de la celda pasada por parametro
      *
-     * @param int $fila
-     * @param int $columna
-     * @param string $valor (left, center, right...)
+     * @param int $fila     Identificador de la fila que se quiere modificar      
+     * @param int $columna  Identificador de la columna que se quiere modificar
+     * @param string $valor Atributo a modificar                               
      * 
      * @access public
      * @deprecated
      * 
      * @access public
      * @deprecated
@@ -181,7 +178,7 @@ class Tabla extends HTML_Table {
     /**
      * Setea una columna como del tipo cabecera    
      *
     /**
      * Setea una columna como del tipo cabecera    
      *
-     * @param int $columna
+     * @param int $columna Identificador de la columna que se quiere modificar
      * 
      * @access public
      * @deprecated
      * 
      * @access public
      * @deprecated
@@ -194,7 +191,7 @@ class Tabla extends HTML_Table {
     /**                 
      * Setea una columna como del tipo titulo
      *
     /**                 
      * Setea una columna como del tipo titulo
      *
-     * @param int $columna
+     * @param int $columna Identificador de la columna que se quiere modificar
      * 
      * @access public
      * @deprecated
      * 
      * @access public
      * @deprecated
@@ -207,8 +204,8 @@ class Tabla extends HTML_Table {
     /**                 
      * Alinea una columna entera  
      *
     /**                 
      * Alinea una columna entera  
      *
-     * @param int $columna
-     * @param string $valor
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * @param string $valor Valor
      * 
      * @access public
      * @deprecated
      * 
      * @access public
      * @deprecated
@@ -221,8 +218,8 @@ class Tabla extends HTML_Table {
     /**                 
      * Cambia el tamanio de una columna entera  
      *
     /**                 
      * Cambia el tamanio de una columna entera  
      *
-     * @param int $columna
-     * @param string $valor
+     * @param int $columna  Identificadore de la columna que se quiere modificar
+     * @param string $valor Valor
      * 
      * @access public
      * @deprecated
      * 
      * @access public
      * @deprecated
@@ -235,9 +232,9 @@ class Tabla extends HTML_Table {
     /**                 
      * Cambia el color de fondo de una celda  
      *
     /**                 
      * Cambia el color de fondo de una celda  
      *
-     * @param int $fila
-     * @param int $columna
-     * @param string $valor
+     * @param int $fila     Identificador de la fila que se quiere modificar    
+     * @param int $columna  Identificador de la columna que se quiere modificar
+     * @param string $valor Atributo a modificar                               
      *
      * @access public
      * @deprecated
      *
      * @access public
      * @deprecated
@@ -255,7 +252,7 @@ class Tabla extends HTML_Table {
      * Si $simple es falso, devuelve el html comun y corriente (con 2
      * tablas), si es false devuelve una tabla sola.
      *
      * Si $simple es falso, devuelve el html comun y corriente (con 2
      * tablas), si es false devuelve una tabla sola.
      *
-     * @param bool $simple
+     * @param bool $simple Tipo de tabla que se quiere recibir.
      *
      * @return string Html
      * 
      *
      * @return string Html
      * 
@@ -263,12 +260,14 @@ class Tabla extends HTML_Table {
      */
     function toHtml($simple = 0)
     {
      */
     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');
         // 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()),
             $this->updateAttributes(array('width' => '100%'));
             $tabla_externa =  new HTML_Table($contenedora);
             $tabla_externa->addRow(array(parent::toHtml()),
@@ -286,15 +285,15 @@ class Tabla extends HTML_Table {
      * asociativo, se setean los atributos representados por las claves
      * con los valores.
      *
      * asociativo, se setean los atributos representados por las claves
      * con los valores.
      *
-     * @param int $row
-     * @param int $col
-     * @param mixed $attrs
+     * @param int $row     Identificador de la fila que se quiere modificar    
+     * @param int $col     Identificador de la columna que se quiere modificar
+     * @param mixed $attrs Atributo a modificar                               
      *
      * @access public
      */
     function updateCellAttributes($row, $col, $attrs)
     {
      *
      * @access public
      */
     function updateCellAttributes($row, $col, $attrs)
     {
-        return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs));
+        return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs, false));
     }
 
     /**
     }
 
     /**
@@ -304,15 +303,15 @@ class Tabla extends HTML_Table {
      * asociativo, se setean los atributos representados por las claves
      * con los valores.
      *
      * asociativo, se setean los atributos representados por las claves
      * con los valores.
      *
-     * @param int $row
-     * @param int $col
-     * @param mixed $attrs
+     * @param int $row     Identificador de la fila que se quiere modificar     
+     * @param int $col     Identificador de la columna que se quiere modificar
+     * @param mixed $attrs Atributo a modificar                               
      *
      * @access public
      */
     function setCellAttributes($row, $col, $attrs)
     {
      *
      * @access public
      */
     function setCellAttributes($row, $col, $attrs)
     {
-        return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs));
+        return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs, true));
     }
 
     /**
     }
 
     /**
@@ -321,10 +320,10 @@ class Tabla extends HTML_Table {
      * Agrega una fila. El contenido es el que viene representado por 
      * el array $content. Recibe los atributos en la variable $attrs
      *
      * Agrega una fila. El contenido es el que viene representado por 
      * el array $content. Recibe los atributos en la variable $attrs
      *
-     * @param mixed $content
-     * @param mixed $attrs
+     * @param mixed $content Contenido
+     * @param mixed $attrs Atributos
      *
      *
-     * @return int $rowId
+     * @return int $rowId Identificador de la fila
      *
      * @access public
      */
      *
      * @access public
      */
@@ -339,12 +338,13 @@ class 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.
      *
      * Convierte un atributo HTML al string para pasar a los metodos de HTML_Table
      * Recibe en $attrs los atributos a modificar.
      *
-     * @param string $attrs
+     * @param mixed $attrs Atributos.
+     * @param bool  $isSet Indica si hay que setear.
      *
      *
-     * @return string
+     * @return array
      * @access private
      */
      * @access private
      */
-    function _translateAttributes($attrs
+    function _translateAttributes($attrs, $isSet)
     {
         if (!$attrs) {
             return array();
     {
         if (!$attrs) {
             return array();
@@ -352,9 +352,11 @@ class Tabla extends HTML_Table {
         if (is_string($attrs)) {
             $attrs = $this->_parseAttributes($attrs);
         }
         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) {
         foreach ($attrs as $attr => $val) {
             $attr = strtolower($attr);
             switch ($attr) {
@@ -362,7 +364,6 @@ class Tabla extends HTML_Table {
                 case 'comun':
                 case 'cabecera':
                 case 'titulo':
                 case 'comun':
                 case 'cabecera':
                 case 'titulo':
-                    #$sin_estilo = false;
                     $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]);
                     break;
                 case 'align':
                     $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]);
                     break;
                 case 'align':
@@ -390,13 +391,18 @@ class Tabla extends HTML_Table {
                     trigger_error("No se permite setear el atributo $attr", E_USER_ERROR);
             }
         }
                     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;
     }
 
         return $rta;
     }
 
+    /**
+     * Obtiene la Cascade Style Sheet para esta tabla.
+     *
+     * @return string Path 'web' a la css.
+     */
+    function getCSS() {
+        return $this->_conf['css'];
+    }
+
 }
 
 ?>
 }
 
 ?>