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 define ('PRE_DIR' ,'/var/www/intranet/www/sistemas/');
29 define ('POST_DIR','/conf/MenuSerializado');
31 // +X2C Class 14 :Menu
33 * Clase para el manejo de los menues y secciones de los sistemas.
39 * Array de secciones. Contiene la informacion de las secciones del sistema.
41 * @var array(seccion) $secciones
48 * Nombre del directorio en donde se encuentra el sistema;.
50 * @var string $directorio
78 * Constructor. Recibe como parametro el directorio en donde se encuentra el sistema.
80 * @param string $directorio Nombre del directorio en donde se encuentra el sistema.
81 * @param string $nombre Nombre del menu
82 * @param string $link Link del menu.
88 function Menu($directorio = null, $nombre = null, $link = null) // ~X2C
90 if (!is_null($directorio)) {
91 // if (file_exists(PRE_DIR.$directorio.POST_DIR)) {
92 //ESTA SERIALIZADO EL OBJETO
93 // $this = $this->_obtenerArchivo($directorio);
96 //NO ESTA SERIALIZADO EL OBJETO
97 $this->_directorio = $directorio;
98 $this->_armarArraySecciones($this->_obtenerConfSecciones());
99 $this->_generarArchivo();
104 if (!is_null($nombre)) {
105 $this->_nombre = $nombre;
107 if (!is_null($link)) {
108 $this->_link = $link;
116 * Funcion que se encarga de generar el archivo que despues sera utilizado con la funcion EVAL.
122 function _generarArchivo() // ~X2C
124 $s = serialize($this);
125 $fp = fopen(PRE_DIR.$this->_directorio.POST_DIR,'w');
133 * Funcion que se encarga de obtener el archivo con los datos del objeto para ser utilizado con la funcion EVAL.
135 * @param string $directorio Nombre del directorio en donde se encuentra el sistema instalado
141 function _obtenerArchivo($directorio) // ~X2C
143 $s = implode("", @file(PRE_DIR.$directorio.POST_DIR));
144 return unserialize($s);
150 * Funcion que devuelve un string en html con lo que hay que imprimir en pantalla.
156 function toHtml() // ~X2C
158 trigger_error('Not implemented!', E_USER_WARNING);
164 * Funcion que obtiene el archivo de configuracion de secciones.
170 function _obtenerConfSecciones() // ~X2C
172 $archivo = include 'confSecciones.php';
179 * Funcion que arma a partir de la configuracion de las secciones el array con los objetos seccion.
181 * @param array $confSec Array con la informacion de las secciones
187 function _armarArraySecciones($confSec) // ~X2C
189 $this->_secciones = array ();
190 foreach ($confSec as $sec) {
191 $tmp = new Seccion ($sec);
192 array_push($this->_secciones,$tmp);
199 * Funcion que devuelve un string en html de las secciones con lo que hay que imprimir en pantalla.
205 function toHtmlSecciones() // ~X2C
208 foreach ($this->_secciones as $sec) {
209 array_push($row,$sec->toHtml());
211 $TABLA = new Tabla('width="760" align="center" bgcolor="#CCCCCC" cellspacing="0"');
212 $TABLA->agregarFila($row);
213 $TABLA->align(0,0,"center");
214 $TABLA->setCellBgcolor(0,0,'#CCCCCC');
215 return $TABLA->toHtml(1);
221 * Funcion que devuelve un string en html del menu vertical con lo que hay que imprimir en pantalla.
227 function toHtmlMenuVertical() // ~X2C
229 trigger_error('Not implemented!', E_USER_WARNING);
233 } // -X2C Class :Menu