X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/3e43dee8eaa2c6e3d6accc222dd965d4acf5f044..667c9c08939da6fd9191296adcb1486d6a4ddc70:/lib/MECON/Marco.php diff --git a/lib/MECON/Marco.php b/lib/MECON/Marco.php index 471f6cb..6c35e69 100644 --- a/lib/MECON/Marco.php +++ b/lib/MECON/Marco.php @@ -26,7 +26,6 @@ $Id$ require_once 'PEAR.php'; require_once 'MECON/Marco/Copete.php'; -require_once 'MECON/Marco/Titulo.php'; require_once 'MECON/Marco/Menu.php'; require_once 'MECON/Marco/MenuPrincipal.php'; @@ -35,23 +34,22 @@ require_once 'HTML/Page.php'; require_once 'HTML/Table.php'; //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'); +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'); +define ('SCRIPT_DIR_BASE', '/MECON/js/' ); +define ('ESTILO_DIR_BASE', '/MECON/css/'); +define ('SCRIPT_GENERICO', 'marco.js' ); +define ('ESTILO_GENERICO', 'marco.css' ); // // +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. + * Clase encargada del manejo del Marco de los sistemas. * * @package MECON * @access public @@ -66,7 +64,7 @@ class MECON_Marco extends HTML_Page { var $_configuracion; /** - * 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 + * Mantiene el estado de los espacios * * @var bool $espacios * @access private @@ -82,7 +80,7 @@ class MECON_Marco extends HTML_Page { var $_menuVertical = null; /** - * Mantiene el estado de los links en la pagina + * Mantiene el estado de los links en la pagina. (True habilitados, False no) * * @var bool $links * @access private @@ -95,12 +93,13 @@ class MECON_Marco extends HTML_Page { /** * Constructor. Recibe como parametro el path del archivo de configuracion * - * @param string $arch_configuracion Nombre del directorio en donde se encuentra el sistema. + * @param string $arch_configuracion indicacion de la ubicacion y nombre del archivo de configuracion + * @param MECON_Perm $obj_permiso Objeto Permisos * * @return void * @access public */ - function MECON_Marco($arch_configuracion) // ~X2C + function MECON_Marco($arch_configuracion, $obj_permiso = null) // ~X2C { //Creo el objeto pagina parent::HTML_Page(array ('doctype' => 'HTML 4.01 Transitional', @@ -111,17 +110,23 @@ class MECON_Marco extends HTML_Page { 'simple' => 'true' )); //Obtengo y arreglo la configuracion $this->_obtenerConfiguracion($arch_configuracion); + //Agrego el objeto permiso a la configuracion + if (@$obj_permiso) { + $this->_configuracion['obj_permiso'] = $obj_permiso; + } //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']); + $this->_configuracion['subtitulo'] = ''; + $this->_configuracion['titulo_sistema2'] = ''; } // -X2C // +X2C Operation 32 /** - * Funcion que se encarga de la obtencion y generacion del array de configuracion.Recibe como parametro el directorio en donde se encuentra el sistema. + * Funcion que se encarga de la obtencion y generacion del array de configuracion. Recibe como parametro el path del archivo de configuracion * * @param string $archivo Archivo de configuracion del sistema * @@ -156,8 +161,9 @@ class MECON_Marco extends HTML_Page { // +X2C Operation 97 /** - * Redefinicion de la funcion que permite agregar o adosar elementos o string al body de la pagina + * Redefinicion de la funcion que permite agregar objetos o html al body de la pagina Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCSS. +@deprecated * * @param Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina * @@ -166,31 +172,28 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS */ function addBody($body) // ~X2C { - if ((is_object($body)) && (method_exists($body, 'getcss'))) { - $this->addStyleSheet($body->getCSS()); - } $this->addBodyContent($body); } // -X2C // +X2C Operation 124 /** - * Funcion que permite adosar al titulo del sistema el titulo de la pagina. + * Funcion que permite concatenar lo pasado como parametro al titulo del sistema * - * @param string $titulo Titulo de la pagina. + * @param string $titulo String que se quiere agregar al titulo del sistema * * @return void * @access public */ function addTitle($titulo) // ~X2C { - $this->setTitle($this->_configuracion['titulo_sistema'].' - '.$titulo); + $this->_configuracion['titulo_sistema2'].= ' - '.$titulo; } // -X2C // +X2C Operation 207 /** - * Setea los espacios entre el menu principal el body y el pie de las paginas + * Setea la variable que define si hay que separar el body del menu * * @param bool $espacios Si es verdadero agrega los espacios, sino los elimina * @@ -205,7 +208,7 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS // +X2C Operation 214 /** - * Agrega un menu vertical a la izquierda en la pantalla. Por ahora solo funciona con MenuOculto + * Agrega un menu vertical a la izquierda en la pantalla. * * @param mixed $menuVertical Objeto u Html que representa el menu a mostrar. * @@ -214,13 +217,16 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS */ function addMenuVertical($menuVertical) // ~X2C { + if ((is_object($menuVertical)) && (method_exists($menuVertical, 'getcss'))) { + $this->addStyleSheet($menuVertical->getCSS()); + } $this->_menuVertical = $menuVertical; } // -X2C // +X2C Operation 218 /** - * Permite deshabilitar la totalidad de los links desde una pagina + * Permite habilitar o deshabilitar los links de una pagina (todos) * * @param bool $param True habilita los links, False no. * @@ -242,15 +248,17 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS */ function toHTML() // ~X2C { + //Seteo el titulo de la pagina + parent::setTitle($this->_configuracion['titulo_sistema'].$this->_configuracion['titulo_sistema2']); //Agrego la opcion seleccionada de links a la configuracion - $this->_configuracion['links'] = $this->_links; + $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 , //Page - 'espacios' => $this->_espacios , - 'menuVertical' => $this->_menuVertical, - ); + $body = array ( 'body' => $this->_body, 'menuVertical' => $this->_menuVertical); + //Page //Agrego el contenido al menu $menu->addBody($body); //Agrego el Marco completo a Page @@ -259,6 +267,114 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS } // -X2C + // +X2C Operation 223 + /** + * Redefinicion de la funcion que permite agregar objetos o html al body de la pagina +Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCSS. + * + * @param mixed $content Contenido a agregar en la pagina + * + * @return void + * @access public + */ + function addBodyContent($content) // ~X2C + { + if ((is_object($content)) && (method_exists($content, 'getcss'))) { + $this->addStyleSheet($content->getCSS()); + } + parent::addBodyContent($content); + } + // -X2C + + // +X2C Operation 224 + /** + * Funcion que permite concatenar lo pasado como parametro al titulo del sistema + * + * @param string $subtitulo Subtitulo a agregar + * + * @return void + * @access public + */ + function addSubTitle($subtitulo) // ~X2C + { + if (is_a($subtitulo, 'mecon_html_link')) { + $subtitulo->updateAttributes( + array('class' => 'mecon_marco_subtitle')); + } + if (method_exists($subtitulo, 'tohtml')) { + $subtitulo = $subtitulo->toHtml(); + } + $this->_configuracion['subtitulo'] .= ' - ' . $subtitulo; + } + // -X2C + + // +X2C Operation 225 + /** + * Concatena lo pasado por parametro al titulo del sistema + * + * @param string $titulo Titulo a agregar. Si se pasa vacio se borra lo que pudiera estar + * + * @return void + * @access public + */ + function setTitle($titulo = '') // ~X2C + { + $this->_configuracion['titulo_sistema2'] = ($titulo) ? ' - '.$titulo : + ''; + } + // -X2C + + // +X2C Operation 226 + /** + * Concatena lo pasado por parametro al titulo de seccion + * + * @param string $subtitulo Setea el subtitulo. Si se pasa vacio borra lo que pudiera estar. + * + * @return void + * @access public + */ + function setSubtitle($subtitulo = '') // ~X2C + { + $this->_configuracion['subtitulo'] = ($subtitulo) ? ' - '.$subtitulo : + ''; + } + // -X2C + + // +X2C Operation 243 + /** + * Permite hacer que en el copete aparezca un icono de ayuda, en un lugar predefinido. Sobreescribe lo seteado anteriormente por cualquier metodo. + * + * @param mixed $ayuda Objeto MECON_HTML_Link o string para utilizar en el map. + * + * @return void + * @access public + */ + function setAyuda($ayuda) // ~X2C + { + $this->_configuracion['ayuda'] = $ayuda; + } + // -X2C + + // +X2C Operation 277 + /** + * Permite obtener el array de configuracion completo. En caso de recibir una clave como parametro devuelve su valor. Solo se tienen en cuenta las claves del primer nivel. + * + * @param string $clave Clave del array de configuracion a obtener. + * + * @return mixed + * @access public + */ + function getConf($clave = null) // ~X2C + { + if ($clave) { + return @$this->_configuracion[$clave]; + } + else { + return $this->_configuracion; + } + } + // -X2C + } // -X2C Class :MECON_Marco ?> \ No newline at end of file