<?php
// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
-// +--------------------------------------------------------------------+
-// | MARCO |
-// +--------------------------------------------------------------------+
-// | Liberia generica para el manejo del marco de los sistemas |
-// | Ministerio de EconomÃa |
-// +--------------------------------------------------------------------+
-// | Creado: thu apr 03 ART 2003 |
-// | Autor: Martin Marrese <mmarre@mecon.gov.ar> |
-// +--------------------------------------------------------------------+
-//
+// +----------------------------------------------------------------------+
+// | 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$
-// $Rev$
// $Date$
-// $Author$
+// $Rev$
+//
-//Hago los require_once necesarios
require_once 'PEAR.php';
-require_once 'include/lib/HTML/Tabla.php';
require_once 'include/lib/marco/Copete.php';
require_once 'include/lib/marco/Titulo.php';
require_once 'include/lib/marco/Pie.php';
-require_once 'include/lib/marco/Script.php';
-require_once 'include/lib/marco/Estilo.php';
-//require_once 'include/lib/marco/Menu.php';
-//require_once 'include/lib/marco/Secciones.php';
-
-//Defino constantes con los nombres de los lugares
-//en donde buscar los html
-define('HTML_01','include/lib/marco/Marco/marco_html_01.php');
-define('HTML_02','include/lib/marco/Marco/marco_html_02.php');
-define('HTML_03','include/lib/marco/Marco/marco_html_04.php');
-define('HTML_04','include/lib/marco/Marco/marco_html_03.php');
-define('HTML_05','include/lib/marco/Marco/marco_html_05.php');
+require_once 'include/lib/marco/Menu.php';
+
+//Agregado para el uso de HTML_Page (Uso la version Original de Pear)
+require_once 'include/lib/HTML/Page.php';
+require_once 'include/lib/HTML/Table.php';
+
+define ('SISTEMA_DIR_BASE', '/www/sistemas');
+define ('SCRIPT_DIR_BASE' , '/www/js/');
+define ('ESTILO_DIR_BASE' , '/www/css/');
+define ('SCRIPT_GENERICO' , 'script.js');
+define ('ESTILO_GENERICO' , 'estilos.css');
+
+// +X2C Class 3 :Marco
/**
- * Manejo del Copete
- *
- * Libreria para le manejo de los copetes para los sistemas de intranet.
+ * 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.
*
- * @version $Rev$
- * @author $Author$
+ * @access public
*/
-
-class Marco extends PEAR {
-
+class Marco extends HTML_Page {
/**
- * Directorio del sistema partiendo desde var/www/intranet/www/sistemas/
+ * Nombre del directorio en donde se encuentra el sistema.
+ *
+ * @var string $directorio
*
- * @var integer
+ * @access private
*/
var $_directorio;
/**
- * Valores de configuracion del sistema
+ * Array con los datos de configuracion del sistema.
*
- * @var integer
+ * @var array $configuracion
+ *
+ * @access private
*/
var $_configuracion;
/**
- * Objeto Titulo del sistema
+ * Referencia al objeto Titulo.
+ *
+ * @var Titulo $titulo
*
- * @var Object
+ * @access private
*/
var $_titulo;
/**
- * Objeto Copete del sistema
+ * Titulo que quiere agregar el usuario al titulo del sistema
*
- * @var Object
- */
- var $_copete;
-
- /**
- * Objeto Script del sistema
+ * @var string $titulo2
*
- * @var Object
+ * @access private
*/
- var $_script;
+ var $_titulo2;
/**
- * Objeto Estilo del sistema
+ * Referencia al objeto Copete.
+ *
+ * @var Copete $copete
*
- * @var Object
+ * @access private
*/
- var $_estilo;
+ var $_copete;
/**
- * Objeto Secciones del sistema
+ * Referencia al objeto Menu.
*
- * @var Object
+ * @var Menu $menu
+ *
+ * @access private
*/
- var $_secciones;
+ var $_menu;
/**
- * Objeto Menu del sistema
+ * Referencia al objeto Pie.
*
- * @var Object
+ * @var Pie $pie
+ *
+ * @access private
*/
- var $_menu;
+ var $_pie;
/**
- * Objeto Pie del sistema
+ * Html de lo que se quiere incluir
*
- * @var Object
+ * @var string $contenido
+ *
+ * @access private
*/
- var $_pie;
+ var $_contenido;
+ // ~X2C
+
+ // +X2C Operation 26
/**
- * Constructor
+ * Constructor. Recibe como parametro el nombre del directorio en donde se encuentra el sistema.
+ *
+ * @param string $directorio Nombre del directorio en donde se encuentra el sistema.
*
- * Recibe como parametro el directorio del sistema. Es case sensitive.
+ * @return void
*
- * @param string $directorio
- *
* @access public
*/
- function Marco ($directorio)
+ function Marco($directorio) // ~X2C
{
+ // var_dump(get_included_files());
+
+ parent::HTML_Page(array ('doctype'=>'HTML 4.01 Transitional',
+ 'charset' => 'iso-8859-1',
+ 'lineend' => 'unix',
+ 'language' => 'es',
+ 'cache' => 'false',
+ 'simple' => 'true'));
+
$this->_directorio = $directorio;
- $this->_configuracion = include 'www/sistemas/'.$this->_directorio.'/conf/configuracion.php';
+ $this->_obtenerConfiguracion();
$this->_titulo = new Titulo ($this->_configuracion);
$this->_copete = new Copete ($this->_directorio);
- $this->_script = new Script ($this->_directorio);
- $this->_estilo = new Estilo ($this->_directorio);
-// $this->_secciones = new Secciones ($this->_directorio);
-// $this->_menu = new Menu ($this->_directorio);
+ $this->_menu = new Menu ($this->_directorio,null);
$this->_pie = new Pie ($this->_configuracion);
+ $this->_contenido = array ();
+ }
+ // -X2C
+
+ // +X2C Operation 27
+ /**
+ * Funcion que devuelve un string en html para ser agregado en el prepend.php del sistema.
+ *
+ * @return string
+ *
+ * @access public
+ */
+ function toHtmlPrepend() // ~X2C
+ {
+/* $row = array ('colspan' => $this->_configuracion['menu'] + 1);
+ Hook::hash('marco-html01');
+ print $this->_titulo->toHtml(); //Agrego el titulo del sistema segun su archivo de configuracion
+ Hook::hash('marco-html02');
+ Hook::hash('marco-html03',$row);
+ print $this->_copete->toHtml(); //Agrego el copete del sistema
+ Hook::hash('marco-html04');
+ Hook::hash('marco-html03',$row);
+ print $this->_menu->toHtmlSecciones(); //Agrego las secciones del sistema
+ //Agrego el titulo de la seccion de ser necesario
+ Hook::hash('marco-html04');
+ Hook::hash('marco-html03',$row);
+ //ACA TENGO QUE VER COMO METO LOS MENUES VERTICALES
+ //ACA QUEDA LISTO PARA QUE SE AGREGUEN EN EL MEDIO LAS PAGINAS DEL SISTEMA
+*/
+ }
+ // -X2C
+
+ // +X2C Operation 29
+ /**
+ * Funcion que devuelve un string html para ser agregado al append.php del sistema.
+ *
+ * @return string
+ *
+ * @access public
+ */
+ function toHtmlAppend() // ~X2C
+ {
+/* $row = array ('colspan' => $this->_configuracion['menu'] + 1);
+ Hook::hash('marco-html04');
+ Hook::hash('marco-html03',$row);
+ print $this->_pie->toHtml(); //Agrego el pie de pagina al sistema
+ print "\n";
+ Hook::hash('marco-html04');
+ Hook::hash('marco-html05');
+*/
+ }
+ // -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 = SISTEMA_DIR_BASE.'/'.$this->_directorio.SCRIPT_DIR_BASE.$archivo;
+ $this->addScript($tmp);
}
+ // -X2C
+ // +X2C Operation 31
/**
- * Funcion para agregar a prepend.php
+ * Funcion que permite agregar archivos de estilo al sistema, ademas del generico.
+ *
+ * @param string $archivo Nombre del archivo a incluir.
*
- * Devuelve el html para que se imprima lo que corresponde
- * a la cabecera de la pagina
+ * @return void
*
* @access public
*/
- function toHtmlPrepend()
+ function agregarEstilo($archivo) // ~X2C
{
- $HTML = ''; //Variable que contiene el html a imprimir
-
- $HTML.= include HTML_01;
- $HTML.="\n".$this->_titulo->toHtml(); //Agrego el titulo del sistema segun su archivo de configuracion
- $HTML.="\n".$this->_script->toHtml(); //Agrego el archivo de script generico como aquellos que se agregaron despues
- $HTML.="\n".$this->_estilo->toHtml(); //Agrego el archivo de estilo generico como aquellos que se agregaron despues
- $HTML.="\n". include HTML_02;
- $HTML.="\n". include HTML_04;
- $HTML.="\n".$this->_copete->toHtml(); //Agrego el copete del sistema
- $HTML.="\n". include HTML_03;
- $HTML.="\n". include HTML_04;
-// $HTML.="\n".$this->_secciones->toHtml(); //Agrego las secciones al sistema
-// $HTML.="\n".$this->_menu->toHtml(); //Agrego los menues del sistema
- $HTML.="\n". include HTML_03;
- $HTML.="\n". include HTML_04;
-
- //ACA QUEDA LISTO PARA QUE SE AGREGUEN EN EL MEDIO LAS PAGINAS DEL SISTEMA
-
- return $HTML;
+ $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.ESTILO_DIR_BASE.$archivo;
+ $this->addStyleSheet($tmp);
}
+ // -X2C
+ // +X2C Operation 32
/**
- * Funcion para agregar a append.php
+ * Funcion que se encarga de la obtencion y generacion del array de configuracion. Recibe como parametro el directorio en donde se encuentra el sistema.
*
- * Devuelve el html para que se imprima lo que corresponde
- * a el pie de la pagina
+ * @return array
+ *
+ * @access private
+ */
+ function _obtenerConfiguracion() // ~X2C
+ {
+ $this->_configuracion = include 'www/sistemas/'.$this->_directorio.'/conf/configuracion.php';
+ }
+ // -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 toHtmlAppend()
+ function display() // ~X2C
{
- $HTML = ''; //Variable que contiene el html a imprimir
- $HTML.= include HTML_03;
- $HTML.="\n". include HTML_04;
- $HTML.="\n". include HTML_03;
- $HTML.="\n". include HTML_04;
- $HTML.="\n".$this->_pie->toHtml(); //Agrego el pie de pagina al sistema
- $HTML.="\n". include HTML_03;
- $HTML.="\n". include HTML_05;
- return $HTML;
+ //Agrego el header
+ $this->_header_display();
+ //Agrego el body
+ $this->_body_display();
+ // MUESTRO EN PANTALLA LA PAGINA
+ parent::display();
+ // SI ESTOY FUNCIONA SOY FELIZ....->MARTIN MARRESE
}
+ // -X2C
+ // +X2C Operation 97
/**
- * Funcion para agregar scripts
*
- * Funcion que sirve para linkear mas archivos de script
- * ademas de los genericos. Lo va a buscar al directorio
- * js dentro del directorio del sistema.
+ * @param Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina
*
- * @param string nombre_archivo
+ * @return void
*
* @access public
*/
- function agregarScript ($archivo)
+ 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->addMetaData("author", 'Martin Marrese <mmarre@mecon.gov.ar>');
+ $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
{
- $this->_script->agregarArchivo($archivo);
+ $TABLA_GRANDE = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"');
+
+ //Agrego el body
+ $row = array ($this->_copete->darCopete());
+ $TABLA_GRANDE->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\"");
+ //Agrego las secciones
+ $row = array ($this->_menu->toHtmlSecciones());
+ $TABLA_GRANDE->addRow($row,"align=\"center\" bgcolor=\"#CCCCCC\"");
+
+ /// {{{ Lo tabulo yo para entenderlo -> GRACIAS VUELVA PRONTO -> mmarre
+ $TABLA_INTERNA = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"');
+ //Armo el body completo (con menu o titulo)
+ $contenido = '';
+ foreach ($this->_contenido as $cont) {
+ if (is_object($cont)) {
+ if (method_exists($cont,'toHtml')) {
+ $contenido.= $cont->toHtml();
+ }
+ else {
+ trigger_error('Error, method not found!', E_USER_WARNING);
+ }
+ }
+ else {
+ $contenido.= $cont;
+ }
+ }
+
+ //Obtengo el menu de la seccion seleccionada
+ if (isset($_SESSION['tipoMenu'])){
+ $row = array ($_SESSION['menuHtml']);
+ if (($_SESSION['tipoMenu'] == 'vertical')) {
+ $ri = $TABLA_INTERNA->addRow($row,"align=\"left\" bgcolor=\"#FFFFFF\" valign=\"top\"");
+ $row = array ($contenido);
+ $TABLA_INTERNA->setCellContents($ri,1,$row);
+ $TABLA_INTERNA->setCellAttributes($ri,1,"align=\"center\" bgcolor=\"#FFFFFF\"");
+ }
+ else {
+ $TABLA_INTERNA->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\"");
+ $row = array ($contenido);
+ $TABLA_INTERNA->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\"");
+ }
+ }
+ else {
+ $row = array ($contenido);
+ $TABLA_INTERNA->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\"");
+ }
+ /// }}}
+
+ //Agrego el body completo (con menu o titulo) a la tabla externa.
+ $row = array ($TABLA_INTERNA);
+ $TABLA_GRANDE->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\"");
+ //Agrego el pie de pagina
+ $row = array ($this->_pie->darPie());
+ $TABLA_GRANDE->addRow($row,"align=\"center\" bgcolor=\"#CCCCCC\"");
+
+ $this->addBodyContent($TABLA_GRANDE->toHtml());
+
+ //TODO: tengo que ver como salvarme de usar $_SESSION['menuHtml']
+ unset($_SESSION['tipoMenu']);
+ unset($_SESSION['menuHtml']);
}
-
+ // -X2C
+
+ // +X2C Operation 124
/**
- * Funcion para agregar estilos
+ * Funcion que permite adosar al titulo del sistema el titulo de la pagina.
*
- * Funcion que sirve para linkear mas archivos de estilos
- * ademas de los genericos. Lo va a buscar al directorio
- * css dentro del directorio del sistema.
+ * @param string $titulo Titulo de la pagina.
*
- * @param string nombre_archivo
+ * @return void
*
* @access public
*/
- function agregarEstilo ($archivo)
+ function addTitle($titulo) // ~X2C
{
- $this->_estilo->agregarArchivo($archivo);
+ $this->_titulo2 = ' - '.$titulo;
}
-
-}
+ // -X2C
+
+} // -X2C Class :Marco
+
?>