]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/Marco.php
Se actualizan las cabeceras.
[mecon/meconlib.git] / lib / MECON / Marco.php
index 69c2125dc347fd31459fa4af84e6531c022bbb75..9a311c863b5a1be95c5f3baed0959f1ebfb67480 100644 (file)
@@ -1,62 +1,63 @@
-<?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
-// +----------------------------------------------------------------------+
-// | PHP Version 4                                                        |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2003 The PHP Group                                |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.02 of the PHP license,      |
-// | that is bundled with this package in the file LICENSE, and is        |
-// | available at through the world-wide-web at                           |
-// | http://www.php.net/license/2_02.txt.                                 |
-// | If you did not receive a copy of the PHP license and are unable to   |
-// | obtain it through the world-wide-web, please send a note to          |
-// | license@php.net so we can mail you a copy immediately.               |
-// +----------------------------------------------------------------------+
-// | Created: Mon Apr 14 16:23:22 2003
-// | Author:  Martin Marrese <mmarre@mecon.gov.ar>
-// +----------------------------------------------------------------------+
-//
-// $Id$
-// $Author$
-// $URL$
-// $Date$
-// $Rev$
-//
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-------------------------------------------------------------------------------
+                             Ministerio de Economía
+                                    meconlib
+-------------------------------------------------------------------------------
+This file is part of meconlib.
+
+meconlib is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+meconlib is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: Mon Apr 14 16:23:22 2003
+Autor:  Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
 
 require_once 'PEAR.php';
-require_once 'Marco/Copete.php';
-require_once 'Marco/Titulo.php';
-require_once 'Marco/Pie.php';
-require_once 'Marco/Menu.php';
-require_once 'Marco/MenuPrincipal.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';
 
 //Agregado para el uso de HTML_Page (Uso la version Original de Pear)
 require_once 'HTML/Page.php';
 require_once 'HTML/Table.php';
 
-define ('SCRIPT_DIR_BASE'  , '/www/js/');
-define ('ESTILO_DIR_BASE'  , '/www/css/');
-define ('SCRIPT_GENERICO'  , 'script.js');
-define ('ESTILO_GENERICO'  , 'estilos.css');
-
+//Defino los directorios por default
+define ('DIR_IMAGENES' , 'images');
+define ('DIR_ESTILOS'  , 'css');
+define ('DIR_JS'       , 'js');
+define ('DIR_WWW'      , 'www');
+define ('DIR_CACHE'    , '/tmp');
+//
+//Defino las constantes
+define ('SCRIPT_DIR_BASE'  , '/MECON/js/');
+define ('ESTILO_DIR_BASE'  , '/MECON/css/');
+define ('SCRIPT_GENERICO'  , 'general_script.js');
+define ('ESTILO_GENERICO'  , 'general_estilos.css');
+//
 
 // +X2C Class 3 :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.
  *
+ * @package MECON
  * @access public
  */
 class Marco extends HTML_Page {
-    /**
-     * Array con los diferentes directorios necesarios para el funcionamiento. Solo el root es obligatorio.
-     *
-     * @var    array $directorio
-     * @access private
-     */
-    var $_directorio;
-
     /**
      * Array con los datos de configuracion del sistema.
      *
@@ -113,6 +114,22 @@ class Marco extends HTML_Page {
      */
     var $_contenido;
 
+    /**
+     * 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    bool $espacios
+     * @access private
+     */
+    var $_espacios;
+
+    /**
+     * Menu vertical para agregar en la pantalla.
+     *
+     * @var    mixed $menuVertical
+     * @access private
+     */
+    var $_menuVertical;
+
     // ~X2C
 
     // +X2C Operation 26
@@ -132,15 +149,17 @@ class Marco extends HTML_Page {
                                  'language' => 'es',
                                  'cache'    => 'false',
                                  'simple'   => 'true'));
-        $this->_directorio    = $directorio;        
-        $this->_obtenerConfiguracion();
-        $this->_titulo        = new Titulo          ($this->_configuracion);
-        $this->_copete        = new Copete          ($this->_directorio);
-        $this->_menu          = new MenuPrincipal   ($this->_directorio);
+        
+        $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
 
@@ -180,14 +199,35 @@ class Marco extends HTML_Page {
 
     // +X2C Operation 32
     /**
-     * Funcion que se encarga de la obtencion y generacion del array de configuracion.
+     * Funcion que se encarga de la obtencion y generacion del array de configuracion.Recibe como parametro el directorio en donde se encuentra el sistema.
+     *
+     * @param  string $archivo Archivo de configuracion del sistema
      *
      * @return array
      * @access private
      */
-    function _obtenerConfiguracion() // ~X2C
+    function _obtenerConfiguracion($archivo) // ~X2C
     {
-        $this->_configuracion = include $this->_directorio.SISTEMA_CONF_BASE;
+        $this->_configuracion = include $archivo;    
+        //Verifico que existan los directorios, si no es asi los reemplazo por los defaults
+        if (!@$this->_configuracion['directorios']['root']) {
+            trigger_error('Es obligatorio ingresar el directorio root!', E_USER_ERROR); 
+        }
+        if (!@$this->_configuracion['directorios']['imagenes']){
+            $this->_configuracion['directorios']['imagenes'] = $this->_configuracion['directorios']['root'].'/'.DIR_IMAGENES;
+        }
+        if (!@$this->_configuracion['directorios']['estilos']){
+            $this->_configuracion['directorios']['estilos'] = $this->_configuracion['directorios']['root'].'/'.DIR_ESTILOS;
+        }
+        if (!@$this->_configuracion['directorios']['js']){
+            $this->_configuracion['directorios']['js'] = $this->_configuracion['directorios']['root'].'/'.DIR_JS;
+        }        
+        if (!@$this->_configuracion['directorios']['www']){
+            $this->_configuracion['directorios']['www'] = $this->_configuracion['directorios']['root'].'/'.DIR_WWW;
+        }        
+        if (!@$this->_configuracion['directorios_fs']['cache']){
+            $this->_configuracion['directorios_fs']['cache'] = DIR_CACHE;
+        }         
     }
     // -X2C
 
@@ -252,9 +292,11 @@ class Marco extends HTML_Page {
      */
     function _body_display() // ~X2C
     {
-        $body = array ( 'copete' => $this->_copete->toHtml(),
-                        'body'   => $this->_contenido,
-                        'pie'    => $this->_pie->toHtml(),
+        $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());
@@ -272,7 +314,37 @@ class Marco extends HTML_Page {
      */
     function addTitle($titulo) // ~X2C
     {
-        $this->_titulo2 = ' - '.$titulo;
+        $this->_titulo2.= ' - '.$titulo;
+    }
+    // -X2C
+
+    // +X2C Operation 207
+    /**
+     * Setea los espacios entre el menu principal el body y el pie de las paginas
+     *
+     * @param  bool $espacios Si es verdadero agrega los espacios, sino los elimina
+     *
+     * @return void
+     * @access public
+     */
+    function setEspacios($espacios = true) // ~X2C
+    {
+        $this->_espacios = $espacios;
+    }
+    // -X2C
+
+    // +X2C Operation 214
+    /**
+     * Agrega un menu vertical a la izquierda en la pantalla. Por ahora solo funciona con MenuOculto
+     *
+     * @param  mixed $menuVertical Objeto u Html que representa el menu a mostrar.
+     *
+     * @return void
+     * @access public
+     */
+    function addMenuVertical($menuVertical) // ~X2C
+    {
+        $this->_menuVertical = $menuVertical;
     }
     // -X2C