1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
3 Ministerio de EconomÃa
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
8 meconlib is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
13 meconlib is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA 02111-1307 USA
20 -------------------------------------------------------------------------------
21 Creado: Mon Apr 14 16:23:22 2003
22 Autor: Martin Marrese <mmarre@mecon.gov.ar>
23 -------------------------------------------------------------------------------
25 -----------------------------------------------------------------------------*/
28 require_once 'MECON/Marco/Pagina.php';
31 //Require Agregados por MMARRE, no pasan por el xmi2code
32 require_once 'MECON/Marco/ImagenAnimada.php';
33 require_once 'MECON/Marco/Menu.php';
34 require_once 'MECON/Marco/MenuHorizontal.php';
35 require_once 'MECON/Marco/MenuVertical.php';
36 require_once 'MECON/Marco/MenuOculto.php';
38 // +X2C Class 16 :MECON_Marco_Seccion
40 * Clase seccion para el manejo de las secciones
42 * @package MECON_Marco
45 class MECON_Marco_Seccion extends MECON_Marco_Pagina {
47 * Nombre de la seccion.
55 * Este es el nombre de la imagen
63 * Hijos (menu) de la seccion.
71 * Valor string del tipo de menu de la seccion
73 * @var string $tipoMenu
79 * Array con la configuracion del sistema
81 * @var array $configuracion
87 * @var string $menuHtml
96 * Constructor. Recibe como parametro el nombre de la seccion
98 * @param array $seccion Array con la informacion de la seccion
99 * @param array $configuracion Array con la configuracion del sistema
104 function MECON_Marco_Seccion($seccion, $configuracion) // ~X2C
106 $this->_nombre = @strval($seccion['nombre']);
107 $imgComun = @strval($seccion['imagenComun']);
108 $imgMouseOn = @strval($seccion['imagenMouseOn']);
109 $imgSelect = @strval($seccion['imagenSelect']);
110 $this->_tipoMenu = @strval($seccion['tipoMenu']);
111 if (@$seccion['link']) {
112 parent::MECON_Marco_Pagina($seccion['link']);
114 $this->_imagen = new MECON_Marco_ImagenAnimada($imgComun, $imgMouseOn, $imgSelect,
115 $configuracion['directorios']['imagenes'], $this->_nombre,
116 $configuracion['directorios']['root'].'/'.$this->_link);
117 if (!is_null($configuracion)) {
118 $this->_configuracion = $configuracion;
120 if (array_key_exists('hijos', $seccion)) {
121 $this->_cargarHijos($seccion['hijos']);
128 * Funcion que devuelve un string con el html a imprimir por pantalla.
130 * @param string $link_sel Indica la pagina a la cual se quiere acceder.
135 function toHtml($link_sel) // ~X2C
137 if (!$this->_configuracion['links']) {
138 $this->_imagen->setHabilitada(false);
140 if ($this->verifSeccionSeleccionada($link_sel)) {
141 $this->_imagen->setSeleccionada(true);
143 return $this->_imagen->toHtml();
149 * Carga el array con los objetos hijos de la seccion
151 * @param array $hijos Array con los datos de los hijos de la seccion
156 function _cargarHijos($hijos) // ~X2C
158 if ($this->_tipoMenu == 'vertical'){
159 $tmp = new MECON_Marco_MenuVertical($this->_configuracion);
161 elseif ($this->_tipoMenu == 'horizontal') {
162 $tmp = new MECON_Marco_MenuHorizontal($this->_configuracion);
165 $tmp = new MECON_Marco_MenuOculto($this->_configuracion);
167 foreach ($hijos as $hijo) {
168 $tmp->agregarComponente($hijo);
170 $this->_hijos = $tmp;
174 // +X2C Operation 127
176 * Funcion que se encarga de desserializar el array asociativo paginas-secciones.
181 function _desSerializarArraySecciones() // ~X2C
183 $file_cache = strtr($this->_configuracion['directorios']['root'],'/','_');
184 $tmp = $this->_configuracion['directorios_fs']['cache'].'/'.ARRAYSECCIONES_SERIALIZADO.'_'.$file_cache;
186 if (file_exists($tmp)) {
187 $s = implode("", @file($tmp));
188 return unserialize($s);
196 // +X2C Operation 129
198 * 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.
199 Devuelve 1 si pertenece a la seccion, en caso contrario 0.
201 * @param string $link_sel Nombre de la pagina a la cual se quiere acceder.
206 function verifSeccionSeleccionada($link_sel) // ~X2C
208 $tmp = $this->_desSerializarArraySecciones();
210 if (isset($tmp) && array_key_exists($this->_nombre,$tmp)) {
211 foreach ($tmp[$this->_nombre] as $t) {
212 if ($link_sel == $t) {
223 // +X2C Operation 202
225 * @param string $link_sel Nombre de la seccion seleccionada
226 * @param bool $ultimo Indica si es el ultimo componente del menu.....en caso de serlo, debe mostrar la imagen con codito
231 function toHtmlVertical($link_sel, $ultimo = false) // ~X2C
233 $style = "text-decoration:none";
235 if (!$this->_configuracion['links']) {
240 $link_start = '<a href="'.$this->_configuracion['directorios']['root'].'/'.$this->_link.'" style="'.$style.'">';
245 if ($this->verifSeccionSeleccionada($link_sel)) {
247 $sec[] = $link_start.'<img src="/MECON/images/general_carp2_f3" border="0">'.$link_end;
250 $sec[] = $link_start.'<img src="/MECON/images/general_carp1_f3" border="0">'.$link_end;
255 $sec[] = $link_start.'<img src="/MECON/images/general_carp2_f2" border="0">'.$link_end;
258 $sec[] = $link_start.'<img src="/MECON/images/general_carp1_f2" border="0">'.$link_end;
262 $sec[] = '<font face="Arial, Helvetica, sans-serif" size="1" color=""><b>'.$link_start.' '.$this->_nombre.$link_end.'</b></font>';
267 } // -X2C Class :MECON_Marco_Seccion