]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/HTML/Tabla.php
BugFix
[mecon/meconlib.git] / lib / MECON / HTML / Tabla.php
index 821a40eb14466e32df04258e34439fb04435d3e2..75505e43c679137025d48361f10900d444739f57 100644 (file)
@@ -25,6 +25,7 @@ $Id$
 -----------------------------------------------------------------------------*/
 
 require_once 'HTML/Table.php';
+require_once 'MECON/HTML/Image.php';
 
 /**
  * Libreria para le manejo de las tablas de los sistemas de intranet.
@@ -520,6 +521,76 @@ class MECON_HTML_Tabla extends HTML_Table {
         }
     }
 
+    /**
+     * Agrega un link predefinido a la cabecera o pie de la tabla.
+     * Ejemplo:
+     * @code
+     * $tabla->addLink('nuevo');
+     * $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 = new MECON_HTML_Link($_SERVER['PHP_SELF'], '');
+        }
+        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'.");
+        }
+    }
+
 }
 
 ?>