// +----------------------------------------------------------------------+ // // $Id$ // $Author$ // $URL$ // $Date$ // $Rev$ // #require_once 'PEAR.php'; // +X2C includes require_once 'MECON/Marco/Pagina.php'; // ~X2C //Require Agregados por MMARRE, no pasan por el xmi2code require_once 'MECON/Marco/ImagenAnimada.php'; require_once 'MECON/Marco/Menu.php'; require_once 'MECON/Marco/MenuHorizontal.php'; require_once 'MECON/Marco/MenuVertical.php'; require_once 'MECON/Marco/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; /** * Array con la configuracion del sistema * * @var array $configuracion * @access private */ var $_configuracion; /** * @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 array $configuracion Array con la configuracion del sistema * * @return void * @access public * @static */ function Seccion($seccion, $configuracion)// ~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, $configuracion['directorios']['imagenes'], $this->_nombre); if (array_key_exists('tipoMenu', $seccion)) { $this->_tipoMenu = $seccion['tipoMenu']; } if (!is_null($configuracion)) { $this->_configuracion = $configuracion; } 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']) { $this->_imagen->setHabilitada(false); } if ($this->verifSeccionSeleccionada($link_sel)) { $this->_imagen->setSeleccionada(true); } return $this->_imagen->toHtml(); } // -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->_configuracion); } elseif ($this->_tipoMenu == 'horizontal') { $tmp = new MenuHorizontal($this->_configuracion); } else { $tmp = new MenuOculto($this->_configuracion); } 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 { $file_cache = strtr($this->_configuracion['directorios']['root'],'/','_'); $tmp = $this->_configuracion['directorios_fs']['cache'].'/'.ARRAYSECCIONES_SERIALIZADO.'_'.$file_cache; 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 ?>