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 'PEAR.php';
31 require_once 'MECON/Marco/Pagina.php';
34 //Require Agregados por MMARRE, no pasan por el xmi2code
35 require_once 'MECON/Marco/ImagenAnimada.php';
36 require_once 'MECON/Marco/Menu.php';
37 require_once 'MECON/Marco/MenuHorizontal.php';
38 require_once 'MECON/Marco/MenuVertical.php';
39 require_once 'MECON/Marco/MenuOculto.php';
42 // +X2C Class 16 :Seccion
44 * Clase seccion para el manejo de las secciones
48 class Seccion extends Pagina {
50 * Nombre de la seccion.
58 * Este es el nombre de la imagen
66 * Hijos (menu) de la seccion.
74 * Valor string del tipo de menu de la seccion
76 * @var string $tipoMenu
82 * Array con la configuracion del sistema
84 * @var array $configuracion
90 * @var string $menuHtml
99 * Constructor. Recibe como parametro el nombre de la seccion
101 * @param array $seccion Array con la informacion de la seccion
102 * @param array $configuracion Array con la configuracion del sistema
108 function Seccion($seccion, $configuracion)// ~X2C
110 $this->_nombre = @strval($seccion['nombre']);
111 $imgComun = @strval($seccion['imagenComun']);
112 $imgMouseOn = @strval($seccion['imagenMouseOn']);
113 $imgSelect = @strval($seccion['imagenSelect']);
114 $this->_tipoMenu = @strval($seccion['tipoMenu']);
115 if (@$seccion['link']) {
116 parent::Pagina($seccion['link']);
118 $this->_imagen = new ImagenAnimada($imgComun, $imgMouseOn, $imgSelect,
119 $configuracion['directorios']['imagenes'], $this->_nombre,
120 $configuracion['directorios']['root'].'/'.$this->_link);
121 if (!is_null($configuracion)) {
122 $this->_configuracion = $configuracion;
124 if (array_key_exists('hijos', $seccion)) {
125 $this->_cargarHijos($seccion['hijos']);
132 * Funcion que devuelve un string con el html a imprimir por pantalla.
134 * @param string $link_sel Indica la pagina a la cual se quiere acceder.
139 function toHtml($link_sel)// ~X2C
141 if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) {
142 $this->_imagen->setHabilitada(false);
144 if ($this->verifSeccionSeleccionada($link_sel)) {
145 $this->_imagen->setSeleccionada(true);
147 return $this->_imagen->toHtml();
153 * Carga el array con los objetos hijos de la seccion
155 * @param array $hijos Array con los datos de los hijos de la seccion
160 function _cargarHijos($hijos)// ~X2C
162 if ($this->_tipoMenu == 'vertical'){
163 $tmp = new MenuVertical($this->_configuracion);
165 elseif ($this->_tipoMenu == 'horizontal') {
166 $tmp = new MenuHorizontal($this->_configuracion);
169 $tmp = new MenuOculto($this->_configuracion);
171 foreach ($hijos as $hijo) {
172 $tmp->agregarComponente($hijo);
174 $this->_hijos = $tmp;
178 // +X2C Operation 127
180 * Funcion que se encarga de desserializar el array asociativo paginas-secciones.
185 function _desSerializarArraySecciones()// ~X2C
187 $file_cache = strtr($this->_configuracion['directorios']['root'],'/','_');
188 $tmp = $this->_configuracion['directorios_fs']['cache'].'/'.ARRAYSECCIONES_SERIALIZADO.'_'.$file_cache;
190 if (file_exists($tmp)) {
191 $s = implode("", @file($tmp));
192 return unserialize($s);
200 // +X2C Operation 129
202 * 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.
203 Devuelve 1 si pertenece a la seccion, en caso contrario 0.
205 * @param string $link_sel Nombre de la pagina a la cual se quiere acceder.
210 function verifSeccionSeleccionada($link_sel)// ~X2C
212 $tmp = $this->_desSerializarArraySecciones();
214 if (isset($tmp) && array_key_exists($this->_nombre,$tmp)) {
215 foreach ($tmp[$this->_nombre] as $t) {
216 if ($link_sel == $t) {
227 // +X2C Operation 202
229 * @param string $link_sel Nombre de la seccion seleccionada
230 * @param bool $ultimo Indica si es el ultimo componente del menu.....en caso de serlo, debe mostrar la imagen con codito
235 function toHtmlVertical($link_sel, $ultimo = false)// ~X2C
237 $style = "text-decoration:none";
239 if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) {
244 $link_start = '<a href="'.$this->_configuracion['directorios']['root'].'/'.$this->_link.'" style="'.$style.'">';
249 if ($this->verifSeccionSeleccionada($link_sel)) {
251 $sec[] = $link_start.'<img src="/MECON/images/general_carp2_f3" border="0">'.$link_end;
254 $sec[] = $link_start.'<img src="/MECON/images/general_carp1_f3" border="0">'.$link_end;
259 $sec[] = $link_start.'<img src="/MECON/images/general_carp2_f2" border="0">'.$link_end;
262 $sec[] = $link_start.'<img src="/MECON/images/general_carp1_f2" border="0">'.$link_end;
266 $sec[] = '<font face="Arial, Helvetica, sans-serif" size="1" color=""><b>'.$link_start.' '.$this->_nombre.$link_end.'</b></font>';
271 } // -X2C Class :Seccion