2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +----------------------------------------------------------------------+
5 // +----------------------------------------------------------------------+
6 // | Copyright (c) 1997-2003 The PHP Group |
7 // +----------------------------------------------------------------------+
8 // | This source file is subject to version 2.02 of the PHP license, |
9 // | that is bundled with this package in the file LICENSE, and is |
10 // | available at through the world-wide-web at |
11 // | http://www.php.net/license/2_02.txt. |
12 // | If you did not receive a copy of the PHP license and are unable to |
13 // | obtain it through the world-wide-web, please send a note to |
14 // | license@php.net so we can mail you a copy immediately. |
15 // +----------------------------------------------------------------------+
16 // | Created: Mon Apr 14 16:23:22 2003
17 // | Author: Martin Marrese <mmarre@mecon.gov.ar>
18 // +----------------------------------------------------------------------+
27 require_once 'Seccion.php';
28 require_once 'include/lib/HTML/Table.php';
30 define ('PRE_DIR' ,'/var/www/intranet/www/sistemas/');
31 define ('POST_DIR','/conf/MenuSerializado');
33 // +X2C Class 14 :Menu
35 * Clase para el manejo de los menues y secciones de los sistemas.
41 * Array de secciones. Contiene la informacion de las secciones del sistema.
43 * @var array(seccion) $secciones
50 * Nombre del directorio en donde se encuentra el sistema;.
52 * @var string $directorio
77 * Valor del colspan necesario para poder armar la pagina
86 * Nombre de la imagen del menu
95 * Contiene el objeto seccion seleccionada
97 * @var Seccion $seccionSelect
107 * Constructor. Recibe como parametro el directorio en donde se encuentra el sistema.
109 * @param string $directorio Nombre del directorio en donde se encuentra el sistema.
115 function Menu($directorio = null) // ~X2C
117 if (!is_null($directorio)) {
118 // if (file_exists(PRE_DIR.$directorio.POST_DIR)) {
119 //ESTA SERIALIZADO EL OBJETO
120 // $this = $this->_obtenerArchivo($directorio);
123 //NO ESTA SERIALIZADO EL OBJETO
124 $this->_directorio = $directorio;
125 $this->_armarArraySecciones($this->_obtenerConfSecciones());
126 $this->_generarArchivo();
135 * Funcion que se encarga de generar el archivo que despues sera utilizado con la funcion EVAL.
141 function _generarArchivo() // ~X2C
143 $s = serialize($this);
144 $fp = fopen(PRE_DIR.$this->_directorio.POST_DIR,'w');
152 * Funcion que se encarga de obtener el archivo con los datos del objeto para ser utilizado con la funcion EVAL.
154 * @param string $directorio Nombre del directorio en donde se encuentra el sistema instalado
160 function _obtenerArchivo($directorio) // ~X2C
162 $s = implode("", @file(PRE_DIR.$directorio.POST_DIR));
163 return unserialize($s);
169 * Funcion que devuelve un string en html con lo que hay que imprimir en pantalla.
175 function toHtml() // ~X2C
177 trigger_error('Not implemented!', E_USER_WARNING);
183 * Funcion que obtiene el archivo de configuracion de secciones.
189 function _obtenerConfSecciones() // ~X2C
191 $archivo = include 'confSecciones.php';
198 * Funcion que arma a partir de la configuracion de las secciones el array con los objetos seccion.
200 * @param array $confSec Array con la informacion de las secciones
206 function _armarArraySecciones($confSec) // ~X2C
208 $link_tmp = basename($_SERVER['PHP_SELF']); //Obtengo en link al cual se quiere acceder
210 $this->_secciones = array ();
211 foreach ($confSec as $sec) {
212 $tmp = new Seccion ($sec, $link_tmp);
213 array_push($this->_secciones,$tmp);
215 if ($tmp->link() == $link_tmp) {
216 $this->_seccionSelect = $tmp;
225 * Funcion que devuelve un string en html de las secciones con lo que hay que imprimir en pantalla.
231 function toHtmlSecciones() // ~X2C
234 foreach ($this->_secciones as $sec) {
235 array_push($row,$sec->toHtml());
237 $TABLA = new HTML_Table('width="760" align="center" bgcolor="#CCCCCC" cellspacing="0"');
238 $TABLA->addRow($row,'align="center" bgcolor="#CCCCCC"');
246 // +X2C Operation 114
248 * Funcion que devuelve la seccion que se selecciono
254 function darSecSel() // ~X2C
256 return $this->_seccionSelect;
261 } // -X2C Class :Menu