]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/Marco.php
Finalizo la poda. Faltan los permisos.
[mecon/meconlib.git] / lib / MECON / Marco.php
index 9a311c863b5a1be95c5f3baed0959f1ebfb67480..79421b899103537122d324f50cf721b48e02fc03 100644 (file)
@@ -27,7 +27,6 @@ $Id$
 require_once 'PEAR.php';
 require_once 'MECON/Marco/Copete.php';
 require_once 'MECON/Marco/Titulo.php';
-require_once 'MECON/Marco/Pie.php';
 require_once 'MECON/Marco/Menu.php';
 require_once 'MECON/Marco/MenuPrincipal.php';
 
@@ -49,7 +48,7 @@ define ('SCRIPT_GENERICO'  , 'general_script.js');
 define ('ESTILO_GENERICO'  , 'general_estilos.css');
 //
 
-// +X2C Class 3 :Marco
+// +X2C Class 3 :MECON_Marco
 /**
  * Clase que se encarga del manejo del marco en general en los sistemas de intranet.
 Trabaja de forma general, llamando a los demas objetos para la realizacion del marco.
@@ -57,7 +56,7 @@ Trabaja de forma general, llamando a los demas objetos para la realizacion del m
  * @package MECON
  * @access public
  */
-class Marco extends HTML_Page {
+class MECON_Marco extends HTML_Page {
     /**
      * Array con los datos de configuracion del sistema.
      *
@@ -67,68 +66,28 @@ class Marco extends HTML_Page {
     var $_configuracion;
 
     /**
-     * Referencia al objeto Titulo.
-     *
-     * @var    Titulo $titulo
-     * @access private
-     */
-    var $_titulo;
-
-    /**
-     * Titulo que quiere agregar el usuario al titulo del sistema
-     *
-     * @var    string $titulo2
-     * @access private
-     */
-    var $_titulo2;
-
-    /**
-     * Referencia al objeto Copete.
-     *
-     * @var    Copete $copete
-     * @access private
-     */
-    var $_copete;
-
-    /**
-     * Referencia al objeto Menu.
-     *
-     * @var    Menu $menu
-     * @access private
-     */
-    var $_menu;
-
-    /**
-     * Referencia al objeto Pie.
-     *
-     * @var    Pie $pie
-     * @access private
-     */
-    var $_pie;
-
-    /**
-     * Html u objetos que se quieren incluir a la pagina
+     * Indica si hay que agregar espacios o no entre los componentes del menu de secciones y el contenido de la pagina, asi como entre la pagina y el pie de pagina
      *
-     * @var    array $contenido
+     * @var    bool $espacios
      * @access private
      */
-    var $_contenido;
+    var $_espacios = true;
 
     /**
-     * Indica si hay que agregar espacios o no entre los componentes del menu de secciones y el contenido de la pagina, asi como entre la pagina y el pie de pagina
+     * Menu vertical para agregar en la pantalla.
      *
-     * @var    bool $espacios
+     * @var    mixed $menuVertical
      * @access private
      */
-    var $_espacios;
+    var $_menuVertical = null;
 
     /**
-     * Menu vertical para agregar en la pantalla.
+     * Mantiene el estado de los links en la pagina
      *
-     * @var    mixed $menuVertical
+     * @var    bool $links
      * @access private
      */
-    var $_menuVertical;
+    var $_links = true;
 
     // ~X2C
 
@@ -141,59 +100,22 @@ class Marco extends HTML_Page {
      * @return void
      * @access public
      */
-    function Marco($arch_configuracion) // ~X2C
+    function MECON_Marco($arch_configuracion) // ~X2C
     {
-        parent::HTML_Page(array ('doctype'=>'HTML 4.01 Transitional',
-                                 'charset'  => 'iso-8859-1',
-                                 'lineend'  => 'unix',
-                                 'language' => 'es',
-                                 'cache'    => 'false',
-                                 'simple'   => 'true'));
-        
+        //Creo el objeto pagina
+        parent::HTML_Page(array ('doctype'  => 'HTML 4.01 Transitional',
+                                 'charset'  => 'iso-8859-1'            ,
+                                 'lineend'  => 'unix'                  ,
+                                 'language' => 'es'                    ,
+                                 'cache'    => 'false'                 ,
+                                 'simple'   => 'true'                  ));
+        //Obtengo y arreglo la configuracion
         $this->_obtenerConfiguracion($arch_configuracion);
-        
-        $this->_titulo        = new Titulo          ($this->_configuracion['titulo_sistema']);
-        $this->_copete        = new Copete          ($this->_configuracion['directorios']['imagenes']);
-        $this->_menu          = new MenuPrincipal   ($this->_configuracion);
-        $this->_pie           = new Pie             ($this->_configuracion);
-        $this->_contenido     = array ();
-        $this->_espacios      = true;
-        $this->_titulo2 = ''; 
-        $this->_menuVertical = null;
-    }
-    // -X2C
-
-
-
-    // +X2C Operation 30
-    /**
-     * Funcion que permite agregar archivos de script al sistema, ademas del generico.
-     *
-     * @param  string $archivo Nombre del archivo a incluir.
-     *
-     * @return void
-     * @access public
-     */
-    function agregarScript($archivo) // ~X2C
-    {
-        $tmp = $this->_directorio.SCRIPT_DIR_BASE.$archivo;
-        $this->addScript($tmp);
-    }
-    // -X2C
-
-    // +X2C Operation 31
-    /**
-     * Funcion que permite agregar archivos de estilo al sistema, ademas del generico.
-     *
-     * @param  string $archivo Nombre del archivo a incluir.
-     *
-     * @return void
-     * @access public
-     */
-    function agregarEstilo($archivo) // ~X2C
-    {
-        $tmp = $this->_directorio.ESTILO_DIR_BASE.$archivo;
-        $this->addStyleSheet($tmp);
+        //Agrego el estilo y el script genericos
+        $this->addScript(SCRIPT_DIR_BASE.SCRIPT_GENERICO);
+        $this->addStyleSheet(ESTILO_DIR_BASE.ESTILO_GENERICO);
+        //Seteo el titulo
+        $this->setTitle($this->_configuracion['titulo_sistema']);
     }
     // -X2C
 
@@ -231,30 +153,11 @@ class Marco extends HTML_Page {
     }
     // -X2C
 
-    // +X2C Operation 91
-    /**
-     * Funcion que se encarga mostrar en pantalla el contenido completo de la pagina. Este metodo utiliza la clase HTML_Page, lo que nos permite utilizar solamente clases y nada de hooks.
-     *
-     * @return string
-     * @access public
-     */
-    function display() // ~X2C
-    {
-        //Agrego el header
-        $this->_header_display();
-        //Agrego el body
-        $this->_body_display();
-
-        $_SESSION['deshabilitar_links'] = null;
-
-        // MUESTRO EN PANTALLA LA PAGINA        
-        parent::display();
-    }
-    // -X2C
 
     // +X2C Operation 97
     /**
      * Redefinicion de la funcion que permite agregar o adosar elementos o string al body de la pagina
+Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCSS.
      *
      * @param  Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina
      *
@@ -263,43 +166,10 @@ class Marco extends HTML_Page {
      */
     function addBody($body) // ~X2C
     {
-        $this->_contenido[] = $body;
-    }
-    // -X2C
-
-    // +X2C Operation 112
-    /**
-     * Funcion que se encarga de agregar a la pagina el contenido del header
-     *
-     * @return void
-     * @access private
-     */
-    function _header_display() // ~X2C
-    {
-        $tmp = $this->_titulo->darTitulo().$this->_titulo2;
-        $this->setTitle($tmp);
-        $this->addScript(SCRIPT_DIR_BASE.SCRIPT_GENERICO);
-        $this->addStyleSheet(ESTILO_DIR_BASE.ESTILO_GENERICO);
-    }
-    // -X2C
-
-    // +X2C Operation 113
-    /**
-     * Funcion que se encarga de agregar a la pagina el contenido del body
-     *
-     * @return void
-     * @access private
-     */
-    function _body_display() // ~X2C
-    {
-        $body = array ( 'copete'       => $this->_copete->toHtml(),
-                        'espacios'     => $this->_espacios,
-                        'body'         => $this->_contenido,
-                        'menuVertical' => $this->_menuVertical,
-                        'pie'          => $this->_pie->toHtml(),
-                      );
-        $this->_menu->addBody($body);        
-        $this->addBodyContent($this->_menu->toHtml());
+        if ((is_object($body)) && (method_exists($body, 'getcss'))) {
+            $this->addStyleSheet($body->getCSS());
+        }
+        $this->addBodyContent($body);
     }
     // -X2C
 
@@ -314,7 +184,7 @@ class Marco extends HTML_Page {
      */
     function addTitle($titulo) // ~X2C
     {
-        $this->_titulo2.= ' - '.$titulo;
+        $this->setTitle($this->_configuracion['titulo_sistema'].' - '.$titulo);
     }
     // -X2C
 
@@ -348,6 +218,47 @@ class Marco extends HTML_Page {
     }
     // -X2C
 
-} // -X2C Class :Marco
+    // +X2C Operation 218
+    /**
+     * Permite deshabilitar la totalidad de los links desde una pagina
+     *
+     * @param  bool $param True habilita los links, False no.
+     *
+     * @return void
+     * @access public
+     */
+    function habilitarLinks($param = true) // ~X2C
+    {
+        $this->_links = $param;
+    }
+    // -X2C
+
+    // +X2C Operation 220
+    /**
+     * Devuelve el html de la pagina
+     *
+     * @return string
+     * @access public
+     */
+    function toHTML() // ~X2C
+    {
+        //Agrego la opcion seleccionada de links a la configuracion 
+        $this->_configuracion['links']    = $this->_links;
+        //Agrego la opcion seleccionada de espacios a la configuracion 
+        $this->_configuracion['espacios'] = $this->_espacios;
+        //Creo el menu principal
+        $menu = new MECON_Marco_MenuPrincipal ($this->_configuracion);
+        //Agrego el contenido de la pagina
+        $body = array ( 'body' => $this->_body, 'menuVertical' => $this->_menuVertical);
+                                  //Page
+        //Agrego el contenido al menu
+        $menu->addBody($body);       
+        //Agrego el Marco completo a Page
+        $this->setBody($menu->toHtml());
+        return parent::toHTML();
+    }
+    // -X2C
+
+} // -X2C Class :MECON_Marco
 
 ?>
\ No newline at end of file