// +----------------------------------------------------------------------+ // // $Id$ // $Author$ // $URL$ // $Date$ // $Rev$ // #require_once 'PEAR.php'; // +X2C includes require_once 'Pagina.php'; // ~X2C //Require Agregados por MMARRE, no pasan por el xmi2code require_once 'ImagenAnimada.php'; require_once 'Menu.php'; require_once 'MenuHorizontal.php'; require_once 'MenuVertical.php'; require_once 'MenuOculto.php'; // +X2C Class 16 :Seccion /** * Clase seccion para el manejo de las secciones * * @access public */ class Seccion extends Pagina { /** * Nombre de la seccion. * * @var string $nombre * * @access private */ var $_nombre; /** * Este es el nombre de la imagen * * @var Imagen $imagen * * @access private */ var $_imagen; /** * Hijos (menu) de la seccion. * * @var Menu $hijos * * @access private */ var $_hijos; /** * Valor string del tipo de menu de la seccion * * @var string $tipoMenu * * @access private */ var $_tipoMenu; /** * Lugar en donde esta el sistema. * * @var string $directorio * * @access private */ var $_directorio; /** * * @var string $menuHtml * * @access private */ var $_menuHtml; // ~X2C // +X2C Operation 63 /** * Constructor. Recibe como parametro el nombre de la seccion * * @param array $seccion Array con la informacion de la seccion * @param string $directorio Dir en donde esta el sistema * * @return void * * @access public * @static */ function Seccion($seccion, $directorio) // ~X2C { if (array_key_exists('nombre',$seccion)) { $this->_nombre = $seccion['nombre']; } if (array_key_exists('imagenComun' ,$seccion)) $imgComun =$seccion['imagenComun']; else unset($imgComun); if (array_key_exists('imagenMouseOn',$seccion)) $imgMouseOn=$seccion['imagenMouseOn']; else unset($imgMouseOn); if (array_key_exists('imagenSelect' ,$seccion)) $imgSelect =$seccion['imagenSelect']; else unset($imgSelect); $this->_imagen = new ImagenAnimada($imgComun,$imgMouseOn,$imgSelect); if (array_key_exists('tipoMenu',$seccion)) { $this->_tipoMenu = $seccion['tipoMenu']; } if (!is_null($directorio)) { $this->_directorio = $directorio; } if (array_key_exists('link',$seccion)) { parent::Pagina($seccion['link']); } if (array_key_exists('hijos',$seccion)) { $this->_cargarHijos($seccion['hijos']); } } // -X2C // +X2C Operation 64 /** * Funcion que devuelve un string con el html a imprimir por pantalla. * * @param string $link_sel Indica la pagina a la cual se quiere acceder. * * @return string * * @access public */ function toHtml($link_sel) // ~X2C { if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) { $link_start = ''; $link_end = ''; $link_start2 = ''; } else { $link_start = ''; $link_start2 = '_nombre.'\',\'\',\''.$this->_imagen->_imgMouseOn.'\',1)>'; $link_end = ''; } if ($this->verifSeccionSeleccionada($link_sel)) { $sec = $link_start."_nombre."\" src=\"".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">".$link_end; } else { $sec = $link_start2."_nombre."\" src=\"".$this->_imagen->_imgComun."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">".$link_end; } return $sec; } // -X2C // +X2C Operation 84 /** * Carga el array con los objetos hijos de la seccion * * @param array $hijos Array con los datos de los hijos de la seccion * * @return void * * @access private */ function _cargarHijos($hijos) // ~X2C { if ($this->_tipoMenu == 'vertical'){ $tmp = new MenuVertical($this->_directorio); } elseif ($this->_tipoMenu == 'horizontal') { $tmp = new MenuHorizontal($this->_directorio); } else { $tmp = new MenuOculto($this->_directorio); } foreach ($hijos as $hijo) { $tmp->agregarComponente($hijo); } $this->_hijos = $tmp; } // -X2C // +X2C Operation 127 /** * Funcion que se encarga de desserializar el array asociativo paginas-secciones. * * @return void * * @access private */ function _desSerializarArraySecciones() // ~X2C { $tmp = PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO; if (file_exists($tmp)) { $s = implode("", @file($tmp)); return unserialize($s); } else { return null; } } // -X2C // +X2C Operation 129 /** * Funcion que se encarga de verificar si la pagina a la cual se quiere acceder pertenece a la seccion que estoy dibujando. Se utiliza como agregado en toHtml. Devuelve 1 si pertenece a la seccion, en caso contrario 0. * * @param string $link_sel Nombre de la pagina a la cual se quiere acceder. * * @return int * * @access public */ function verifSeccionSeleccionada($link_sel) // ~X2C { $tmp = $this->_desSerializarArraySecciones(); $retorno = 0; if (isset($tmp) && array_key_exists($this->_nombre,$tmp)) { foreach ($tmp[$this->_nombre] as $t) { if ($link_sel == $t) { $retorno = 1; } } } return $retorno; } // -X2C // +X2C Operation 202 /** * * @param string $link_sel Nombre de la seccion seleccionada * @param bool $ultimo Indica si es el ultimo componente del menu.....en caso de serlo, debe mostrar la imagen con codito * * @return string * * @access public */ function toHtmlVertical($link_sel, $ultimo = false) // ~X2C { $style = "text-decoration:none"; if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) { $link_start = ''; $link_end = ''; } else { $link_start = ''; $link_end = ''; } $sec = array (); if ($this->verifSeccionSeleccionada($link_sel)) { if ($ultimo) { $sec[] = $link_start.''.$link_end; } else { $sec[] = $link_start.''.$link_end; } } else { if ($ultimo) { $sec[] = $link_start.''.$link_end; } else { $sec[] = $link_start.''.$link_end; } } $sec[] = ''.$link_start.'  '.$this->_nombre.$link_end.''; return $sec; } // -X2C } // -X2C Class :Seccion ?>