]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/HTML/Tabla.php
Se termina TablaDB con documentación y todo. Falta probar mejor y dar más ejemplos.
[mecon/meconlib.git] / lib / MECON / HTML / Tabla.php
index eb536ab9586536394966e23cd0d707e099679b9e..4c8ab0aa22740cfb05cc94e8b7a3c01146fdbb50 100644 (file)
@@ -25,6 +25,7 @@ $Id$
 -----------------------------------------------------------------------------*/
 
 require_once 'HTML/Table.php';
 -----------------------------------------------------------------------------*/
 
 require_once 'HTML/Table.php';
+require_once 'MECON/HTML/Image.php';
 
 /**
  * Libreria para le manejo de las tablas de los sistemas de intranet.
 
 /**
  * Libreria para le manejo de las tablas de los sistemas de intranet.
@@ -71,7 +72,7 @@ class MECON_HTML_Tabla extends HTML_Table {
      * seteados por default segun el archivo de configuracion.
      * Ademas puede recibir la indicacion de algun estilo en particular.
      *
      * seteados por default segun el archivo de configuracion.
      * Ademas puede recibir la indicacion de algun estilo en particular.
      *
-     * @param mixed $atributos Atributos diferentes a los estandares para la tabla
+     * @param mixed $attrs Atributos diferentes a los estandares para la tabla
      * @param string $estilo Tipo de tabla
      * 
      * @access public
      * @param string $estilo Tipo de tabla
      * 
      * @access public
@@ -106,149 +107,6 @@ class MECON_HTML_Tabla extends HTML_Table {
 
     }    
 
 
     }    
 
-    /**                 
-     * 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 array() $contenido Contenido de la fila
-     *
-     * @return int Identificador de Linea
-     * @access public
-     * @deprecated
-     */
-    function agregarFilaCabecera($contenido = '', $atributos = '') {
-        return $this->addRow($contenido, 'cabecera');
-    }
-
-    /**                 
-     * 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 array() $contenido Contenido de la fila
-     *
-     * @return int Identificador de Linea
-     * 
-     * @access public
-     * @deprecated
-     */
-    function agregarFila($contenido = '') {
-        return $this->addRow($contenido, 'comun');
-    }
-
-    /**                 
-     * Modifica el atributo rowSpan a la celda pasada por parametro
-     *
-     * @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
-     */
-    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    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
-     */
-    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     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
-     */
-    function align($fila, $columna, $valor) {
-        return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
-    }
-
-    /**
-     * Setea una columna como del tipo cabecera    
-     *
-     * @param int $columna Identificador de la columna que se quiere modificar
-     * 
-     * @access public
-     * @deprecated
-     */
-    function setColCabecera($columna) {
-        return $this->updateColAttributes($columna, 'cabecera');
-    }
-
-    /**                 
-     * Setea una columna como del tipo titulo
-     *
-     * @param int $columna Identificador de la columna que se quiere modificar
-     * 
-     * @access public
-     * @deprecated
-     */
-    function setColTitulo($columna) {
-        return $this->updateColAttributes($columna, 'titulo');
-    }
-
-    /**                 
-     * Alinea una columna entera  
-     *
-     * @param int $columna Identificador de la columna que se quiere modificar
-     * @param string $valor Valor
-     * 
-     * @access public
-     * @deprecated
-     */
-    function setColAlign($columna, $valor) {
-        return $this->updateColAttributes($columna,'align="'.$valor.'"');
-    }
-
-    /**                 
-     * Cambia el tamanio de una columna entera  
-     *
-     * @param int $columna  Identificadore de la columna que se quiere modificar
-     * @param string $valor Valor
-     * 
-     * @access public
-     * @deprecated
-     */
-    function setColWidth($columna, $valor) {
-        return $this->updateColAttributes($columna,'width="'.$valor.'"');
-    }
-
-    /**                 
-     * Cambia el color de fondo de una celda  
-     *
-     * @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
-     */
-    function setCellBgcolor($fila, $columna, $valor) {
-        return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
-    }
-
     /**                 
      * Devuelve el html de la tabla
      *
     /**                 
      * Devuelve el html de la tabla
      *
@@ -437,15 +295,28 @@ class MECON_HTML_Tabla extends HTML_Table {
 
     /**
      * Setea la cabecera.
 
     /**
      * Setea la cabecera.
+     * Ejemplo:
+     * @code
+     * $tabla->setCabecera(array('Hola', ' ', 'mundo!'));
+     * @endcode
      *
      *
-     * @param array $cabecera Celdas a agregar a la cabecera.
+     * @param array $cabecera Array de 3 elementos, que son la celda izquierda,
+     *                        central y derecha de la cabecera (en ese órden).
      */
     function setCabecera($cabecera) {
      */
     function setCabecera($cabecera) {
+        if (count($pie) != 3) {
+            $this->raiseError('Parámetro incorrecto: debe ser un array de 3 elementos.');
+        }
         $this->_cabecera = $cabecera;
     }
 
     /**
      * Agrega información a la cabecera de la tabla.
         $this->_cabecera = $cabecera;
     }
 
     /**
      * Agrega información a la cabecera de la tabla.
+     * Ejemplo:
+     * @code
+     * $tabla->updateCabecera('Hola', 'izquierda');
+     * $tabla->updateCabecera('mundo!', 'derecha');
+     * @endcode
      *
      * @param mixed $cabecera Celda a agregar a la cabecera. Puede ser un string
      *                        o un objeto con un método toHtml().
      *
      * @param mixed $cabecera Celda a agregar a la cabecera. Puede ser un string
      *                        o un objeto con un método toHtml().
@@ -470,9 +341,15 @@ class MECON_HTML_Tabla extends HTML_Table {
     /**
      * Setea el pie.
      *
     /**
      * Setea el pie.
      *
-     * @param array $pie Celdas a agregar al pie.
+     * @param array $pie Array de 3 elementos, que son la celda izquierda,
+     *                   central y derecha del pie (en ese órden).
+     *
+     * @see Ejemplo en setCabecera().
      */
     function setPie($pie) {
      */
     function setPie($pie) {
+        if (count($pie) != 3) {
+            $this->raiseError('Parámetro incorrecto: debe ser un array de 3 elementos.');
+        }
         $this->_pie = $pie;
     }
 
         $this->_pie = $pie;
     }
 
@@ -483,8 +360,10 @@ class MECON_HTML_Tabla extends HTML_Table {
      *                        o un objeto con un método toHtml().
      * @param string $lugar   Lugar en donde poner el pie. Puede ser
      *                       'izquierda', 'centro' o 'derecha'.
      *                        o un objeto con un método toHtml().
      * @param string $lugar   Lugar en donde poner el pie. Puede ser
      *                       'izquierda', 'centro' o 'derecha'.
+     *
+     * @see Ejemplo en updateCabecera().
      */
      */
-    function updatePie($pie, $lugar = 0) {
+    function updatePie($pie, $lugar) {
         if (!$this->_pie) {
             $this->_pie = array(' ', ' ', ' ');
         }
         if (!$this->_pie) {
             $this->_pie = array(' ', ' ', ' ');
         }
@@ -499,6 +378,87 @@ class MECON_HTML_Tabla extends HTML_Table {
         }
     }
 
         }
     }
 
+    /**
+     * Agrega un link predefinido a la cabecera o pie de la tabla.
+     * Ejemplo:
+     * @code
+     * if ($muchos) {
+     *      $tabla->addLink('nuevo');
+     * } else {
+     *      $tabla->addLink('nuevos', 'nuevos.php');
+     * }
+     * $tabla->addLink('volver',
+     *      new MECON_HTML_Link('atras.php'));
+     * $tabla->addLink('anterior',
+     *      new MECON_HTML_Link('previo.php', 'Persona Anterior'));
+     * $tabla->addLink('siguiente',
+     *      new MECON_HTML_Link('previo.php', 'Siguiente persona',
+     *          array('pers' => 'prox')));
+     * @endcode
+     *
+     * @param string $id Identificador del link predefinido. Puede ser 'volver',
+     *                   'nuevo', 'nuevos', 'anterior' y 'siguiente'.
+     * @param MECON_HTML_Link $link Link a usar. Si no tiene contenidos, se pone
+     *                              uno por defecto. Si es null, se pone como
+     *                              link la página actual.
+     * 
+     */
+    function addLink($id, $link = null) {
+        if (!$link) {
+            $link = @$_SERVER['PHP_SELF'];
+        }
+        if (is_string($link)) {
+            $link = new MECON_HTML_Link($link, '');
+        }
+        switch ($id) {
+            case 'nuevo':
+                $img = new MECON_HTML_Image('/MECON/images/general_nuevo', '-<');
+                // Si no tiene titulo, le pone titulo por defecto.
+                if (!$link->getContents()) {
+                    $link->setContents('Nuevo');
+                }
+                $link->addContents($img);
+                $this->updateCabecera($link, 'derecha');
+                break;
+            case 'nuevos':
+                $img = new MECON_HTML_Image('/MECON/images/general_muchos_nuevo', '-<');
+                // Si no tiene titulo, le pone titulo por defecto.
+                if (!$link->getContents()) {
+                    $link->setContents('Nuevos');
+                }
+                $link->addContents($img);
+                $this->updateCabecera($link, 'derecha');
+                break;
+            case 'siguiente':
+                $img = new MECON_HTML_Image('/MECON/images/general_posterior', '-<');
+                // Si no tiene titulo, le pone titulo por defecto.
+                if (!$link->getContents()) {
+                    $link->setContents('Siguiente');
+                }
+                $link->addContents($img);
+                $this->updatePie($link, 'derecha');
+                break;
+            case 'volver':
+                $img = new MECON_HTML_Image('/MECON/images/general_anterior', '>-');
+                // Si no tiene titulo, le pone titulo por defecto.
+                $cont = $link->getContents() ? $link->getContents() : 'Volver';
+                $link->setContents($img);
+                $link->addContents($cont);
+                $this->updateCabecera($link, 'izquierda');
+                break;
+            case 'anterior':
+                $img = new MECON_HTML_Image('/MECON/images/general_anterior', '>-');
+                // Si no tiene titulo, le pone titulo por defecto.
+                $cont = $link->getContents() ? $link->getContents() : 'Anterior';
+                $link->setContents($img);
+                $link->addContents($cont);
+                $this->updatePie($link, 'izquierda');
+                break;
+            default:
+                $this->raiseError("No hay un link predefinido llamado '$id'.");
+        }
+    }
+
 }
 
 ?>
 }
 
 ?>