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 'Pagina.php';
34 //Require Agregados por MMARRE, no pasan por el xmi2code
35 require_once 'ImagenAnimada.php';
36 require_once 'Menu.php';
37 require_once 'MenuHorizontal.php';
38 require_once 'MenuVertical.php';
39 require_once '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.
59 * Este es el nombre de la imagen
68 * Hijos (menu) de la seccion.
77 * Valor string del tipo de menu de la seccion
79 * @var string $tipoMenu
86 * Lugar en donde esta el sistema.
88 * @var string $directorio
96 * @var string $menuHtml
106 * Constructor. Recibe como parametro el nombre de la seccion
108 * @param array $seccion Array con la informacion de la seccion
109 * @param string $directorio Dir en donde esta el sistema
116 function Seccion($seccion, $directorio) // ~X2C
118 $this->_nombre = $seccion['nombre'];
119 $this->_imagen = new ImagenAnimada($seccion['imagenComun']);
120 $this->_tipoMenu = $seccion['tipoMenu'];
121 $this->_directorio = $directorio;
122 parent::Pagina($seccion['link']);
123 if (array_key_exists('hijos',$seccion)) {
124 $this->_cargarHijos($seccion['hijos']);
126 elseif (array_key_exists('subhijos',$seccion)) {
127 $this->_cargarSubHijos($seccion['subhijos']);
135 * Funcion que devuelve un string con el html a imprimir por pantalla.
137 * @param string $link_sel Indica la pagina a la cual se quiere acceder.
143 function toHtml($link_sel) // ~X2C
145 if ($this->verifSeccionSeleccionada($link_sel)) {
146 $sec = "<a href=\"".$this->_link."\"><img name=\"".$this->_nombre."\" src=\"images/".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\"></a>";
148 $titulo = '<font face="Arial, Helvetica, sans-serif" size="3" color="#FFFFFF"><b>'.$this->_nombre.'</b></font>';
152 $sec = "<a href=\"".$this->_link."\" onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_displayStatusMsg('".$this->_nombre."'); MM_swapImage('".$this->_nombre."','','images/".$this->_imagen->_imgMouseOn."',1); return document.MM_returnValue\" MM_swapImage('".$this->_nombre."','','images/".$this->_imagen->_imgMouseOn."',1)><img name=\"".$this->_nombre."\" src=\"images/".$this->_imagen->_imgComun."\" border=\"0\" alt=\"".$this->_imagen->_alt."\"></a>";
163 * Carga el array con los objetos hijos de la seccion
165 * @param array $hijos Array con los datos de los hijos de la seccion
171 function _cargarHijos($hijos) // ~X2C
173 if ($this->_tipoMenu == 'vertical'){
174 $tmp = new MenuVertical(null);
176 elseif ($this->_tipoMenu == 'horizontal') {
177 $tmp = new MenuHorizontal(null);
180 $tmp = new MenuOculto(null);
182 foreach ($hijos as $hijo) {
183 $tmp->agregarComponente($hijo);
185 $this->_hijos = $tmp;
189 // +X2C Operation 127
191 * Funcion que se encarga de desserializar el array asociativo paginas-secciones.
197 function _desSerializarArraySecciones() // ~X2C
199 $tmp = PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO;
200 $s = implode("", @file($tmp));
201 return unserialize($s);
205 // +X2C Operation 129
207 * 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.
208 Devuelve 1 si pertenece a la seccion, en caso contrario 0.
210 * @param string $link_sel Nombre de la pagina a la cual se quiere acceder.
216 function verifSeccionSeleccionada($link_sel) // ~X2C
218 $tmp = $this->_desSerializarArraySecciones();
219 if (isset($tmp) && array_key_exists($link_sel,$tmp) && ($tmp[$link_sel] == $this->_nombre || (array_key_exists($tmp[$link_sel],$tmp) && $this->_nombre == $tmp[$tmp[$link_sel]]))) {
227 // +X2C Operation 150
229 * Carga el array con los objetos subhijos de la seccion
231 * @param array $subhijos Array con los nombres de los links que componen a este hijo
237 function _cargarSubHijos($subhijos) // ~X2C
239 echo 'LLegue aca estos en _cargarSubHijos Seccion.php';
243 } // -X2C Class :Seccion