// +----------------------------------------------------------------------+ // // $Id$ // $Author$ // $URL$ // $Date$ // $Rev$ // require_once 'Seccion.php'; require_once 'HTML/Table.php'; define ('PRE_DIR' ,'/var/www/intranet/www/sistemas/'); define ('POST_DIR','/conf/MenuSerializado'); // +X2C Class 14 :Menu /** * Clase para el manejo de los menues y secciones de los sistemas. * * @access public */ class Menu { /** * Array de secciones. Contiene la informacion de las secciones del sistema. * * @var array(seccion) $secciones * * @access private */ var $_secciones; /** * Nombre del directorio en donde se encuentra el sistema;. * * @var string $directorio * * @access private */ var $_directorio; /** * Nombre del menu * * @var string $nombre * * @access private */ var $_nombre; /** * Link del menu. * * @var string $link * * @access private */ var $_link; // ~X2C // +X2C Operation 56 /** * Constructor. Recibe como parametro el directorio en donde se encuentra el sistema. * * @param string $directorio Nombre del directorio en donde se encuentra el sistema. * @param string $nombre Nombre del menu * @param string $link Link del menu. * * @return void * * @access public */ function Menu($directorio = null, $nombre = null, $link = null) // ~X2C { if (!is_null($directorio)) { // if (file_exists(PRE_DIR.$directorio.POST_DIR)) { //ESTA SERIALIZADO EL OBJETO // $this = $this->_obtenerArchivo($directorio); // } // else { //NO ESTA SERIALIZADO EL OBJETO $this->_directorio = $directorio; $this->_armarArraySecciones($this->_obtenerConfSecciones()); $this->_generarArchivo(); // } } else { if (!is_null($nombre)) { $this->_nombre = $nombre; } if (!is_null($link)) { $this->_link = $link; } } } // -X2C // +X2C Operation 57 /** * Funcion que se encarga de generar el archivo que despues sera utilizado con la funcion EVAL. * * @return void * * @access private */ function _generarArchivo() // ~X2C { $s = serialize($this); $fp = fopen(PRE_DIR.$this->_directorio.POST_DIR,'w'); fputs($fp, $s); fclose($fp); } // -X2C // +X2C Operation 58 /** * Funcion que se encarga de obtener el archivo con los datos del objeto para ser utilizado con la funcion EVAL. * * @param string $directorio Nombre del directorio en donde se encuentra el sistema instalado * * @return string * * @access private */ function _obtenerArchivo($directorio) // ~X2C { $s = implode("", @file(PRE_DIR.$directorio.POST_DIR)); return unserialize($s); } // -X2C // +X2C Operation 59 /** * Funcion que devuelve un string en html con lo que hay que imprimir en pantalla. * * @return string * * @access public */ function toHtml() // ~X2C { trigger_error('Not implemented!', E_USER_WARNING); } // -X2C // +X2C Operation 76 /** * Funcion que obtiene el archivo de configuracion de secciones. * * @return array * * @access private */ function _obtenerConfSecciones() // ~X2C { $archivo = include 'confSecciones.php'; return $archivo; } // -X2C // +X2C Operation 82 /** * Funcion que arma a partir de la configuracion de las secciones el array con los objetos seccion. * * @param array $confSec Array con la informacion de las secciones * * @return void * * @access private */ function _armarArraySecciones($confSec) // ~X2C { $this->_secciones = array (); foreach ($confSec as $sec) { $tmp = new Seccion ($sec); array_push($this->_secciones,$tmp); } } // -X2C // +X2C Operation 87 /** * Funcion que devuelve un string en html de las secciones con lo que hay que imprimir en pantalla. * * @return string * * @access public */ function toHtmlSecciones() // ~X2C { $row = array(); foreach ($this->_secciones as $sec) { array_push($row,$sec->toHtml()); } $TABLA = new HTML_Table('width="760" align="center" bgcolor="#CCCCCC" cellspacing="0"'); $TABLA->addRow($row,'align="center" bgcolor="#CCCCCC"'); return $TABLA; } // -X2C // +X2C Operation 88 /** * Funcion que devuelve un string en html del menu vertical con lo que hay que imprimir en pantalla. * * @return string * * @access public */ function toHtmlMenuVertical() // ~X2C { trigger_error('Not implemented!', E_USER_WARNING); } // -X2C } // -X2C Class :Menu ?>