]> git.llucax.com Git - mecon/meconlib.git/blobdiff - lib/MECON/Marco/Seccion.php
- Correccion de bugs
[mecon/meconlib.git] / lib / MECON / Marco / Seccion.php
index 661cfc8fda712bb41e520e2721f3c34fd38ea038..98190e4fbf93b71a8191a6e7be6f1f972d1db60e 100644 (file)
@@ -1,59 +1,48 @@
-<?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
-// +----------------------------------------------------------------------+
-// | PHP Version 4                                                        |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2003 The PHP Group                                |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.02 of the PHP license,      |
-// | that is bundled with this package in the file LICENSE, and is        |
-// | available at through the world-wide-web at                           |
-// | http://www.php.net/license/2_02.txt.                                 |
-// | If you did not receive a copy of the PHP license and are unable to   |
-// | obtain it through the world-wide-web, please send a note to          |
-// | license@php.net so we can mail you a copy immediately.               |
-// +----------------------------------------------------------------------+
-// | Created: Mon Apr 14 16:23:22 2003
-// | Author:  Martin Marrese <mmarre@mecon.gov.ar>
-// +----------------------------------------------------------------------+
-//
-// $Id$
-// $Author$
-// $URL$
-// $Date$
-// $Rev$
-//
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-------------------------------------------------------------------------------
+                             Ministerio de Economía
+                                    meconlib
+-------------------------------------------------------------------------------
+This file is part of meconlib.
 
-#require_once 'PEAR.php';
+meconlib is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
 
+meconlib is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: Mon Apr 14 16:23:22 2003
+Autor:  Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id$
+-----------------------------------------------------------------------------*/
 
-// +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
+ * Clase para el manejo de las secciones
  *
- * @package MECON_Marco
  * @access public
  */
-class Seccion extends Pagina {
+class MECON_Marco_Seccion {
     /**
      * Nombre de la seccion.
      *
      * @var    string $nombre
      * @access private
      */
-    var $_nombre;
+    var $_nombre = '';
 
     /**
      * Este es el nombre de la imagen
@@ -77,7 +66,7 @@ class Seccion extends Pagina {
      * @var    string $tipoMenu
      * @access private
      */
-    var $_tipoMenu;
+    var $_tipoMenu = '';
 
     /**
      * Array con la configuracion del sistema
@@ -85,40 +74,50 @@ class Seccion extends Pagina {
      * @var    array $configuracion
      * @access private
      */
-    var $_configuracion;
+    var $_configuracion = array();
 
     /**
+     * Contiene el html del menu de la seccion
+     *
      * @var    string $menuHtml
      * @access private
      */
-    var $_menuHtml;
+    var $_menuHtml = '';
 
-    // ~X2C
+    /**
+     * Nombre del archivo pagina.
+     *
+     * @var    string $link
+     * @access private
+     */
+    var $_link = '';
 
-    // +X2C Operation 63
     /**
-     * Constructor. Recibe como parametro el nombre de la seccion
+     * 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
+    function MECON_Marco_Seccion($seccion, $configuracion)
     {
         $this->_nombre   = @strval($seccion['nombre']);
         $imgComun        = @strval($seccion['imagenComun']);
         $imgMouseOn      = @strval($seccion['imagenMouseOn']);
         $imgSelect       = @strval($seccion['imagenSelect']);
-        $this->_tipoMenu = @strval($seccion['tipoMenu']);
-        if (@$seccion['link']) {
-            parent::Pagina($seccion['link']);
-        }        
-        $this->_imagen = new ImagenAnimada($imgComun, $imgMouseOn, $imgSelect,
-            $configuracion['directorios']['imagenes'], $this->_nombre,
-            $configuracion['directorios']['root'].'/'.$this->_link);
+        $this->_tipoMenu = @strval(strtolower($seccion['tipoMenu']));
+        $this->_link     = @strval($seccion['link']);
+        
+        $this->_imagen = new MECON_Marco_ImagenAnimada( $imgComun, 
+                                                        $imgMouseOn, 
+                                                        $imgSelect,
+                                                        $configuracion['directorios']['imagenes'], 
+                                                        $this->_nombre,
+                                                        $configuracion['directorios']['root'].'/'.
+                                                        $this->_link,
+                                                        @strval($seccion['alt']));
         if (!is_null($configuracion)) {
             $this->_configuracion = $configuracion;
         }
@@ -126,9 +125,7 @@ class Seccion extends Pagina {
             $this->_cargarHijos($seccion['hijos']);
         }
     }
-    // -X2C
 
-    // +X2C Operation 64
     /**
      * Funcion que devuelve un string con el html a imprimir por pantalla.
      *
@@ -137,9 +134,9 @@ class Seccion extends Pagina {
      * @return string
      * @access public
      */
-    function toHtml($link_sel) // ~X2C
+    function toHtml($link_sel)
     {
-        if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) {
+        if (!$this->_configuracion['links']) {
             $this->_imagen->setHabilitada(false);
         }
         if ($this->verifSeccionSeleccionada($link_sel)) {
@@ -147,9 +144,7 @@ class Seccion extends Pagina {
         }
         return $this->_imagen->toHtml();
     }
-    // -X2C
 
-    // +X2C Operation 84
     /**
      * Carga el array con los objetos hijos de la seccion
      *
@@ -158,32 +153,32 @@ class Seccion extends Pagina {
      * @return void
      * @access private
      */
-    function _cargarHijos($hijos) // ~X2C
+    function _cargarHijos($hijos)
     {
         if ($this->_tipoMenu == 'vertical'){
-            $tmp = new MenuVertical($this->_configuracion);
+            $tmp = new MECON_Marco_MenuVertical($this->_configuracion);
         }
         elseif ($this->_tipoMenu == 'horizontal') {
-            $tmp = new MenuHorizontal($this->_configuracion);
+            $tmp = new MECON_Marco_MenuHorizontal($this->_configuracion);
         }
         else {
-            $tmp = new MenuOculto($this->_configuracion);
+            $tmp = new MECON_Marco_MenuOculto($this->_configuracion);
         }
         foreach ($hijos as $hijo) {
+            $hijo['alt'] = @$hijo['alt'] ? $hijo['alt'] : $hijo['nombre'];
+            $hijo['nombre'] = $this->_nombre.'-'.$hijo['nombre'];
             $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
+    function _desSerializarArraySecciones() 
     {
         $file_cache = strtr($this->_configuracion['directorios']['root'],'/','_');
         $tmp = $this->_configuracion['directorios_fs']['cache'].'/'.ARRAYSECCIONES_SERIALIZADO.'_'.$file_cache;
@@ -196,48 +191,46 @@ class Seccion extends Pagina {
             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.
+     * 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
+    function verifSeccionSeleccionada($link_sel) 
     {
         $tmp = $this->_desSerializarArraySecciones();
         $retorno = 0;
         if (isset($tmp) && array_key_exists($this->_nombre,$tmp)) {
             foreach ($tmp[$this->_nombre] as $t) {
-                if ($link_sel == $t) {
+                if (rtrim($link_sel, '/') == rtrim($t, '/')) {
                     $retorno = 1;
                 }
             }
         }
         return $retorno;
     }
-    // -X2C
-
-
-
-    // +X2C Operation 202
+    
     /**
+     * Devuelve el html a mostrar en pantalla
+     *
      * @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
+    function toHtmlVertical($link_sel, $ultimo = false)
     {
         $style = "text-decoration:none";
         
-        if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) {
+        if (!$this->_configuracion['links']) {
             $link_start = '';
             $link_end   = '';
         }
@@ -248,27 +241,16 @@ Devuelve 1 si pertenece a la seccion, en caso contrario 0.
         
         $sec = array ();
         if ($this->verifSeccionSeleccionada($link_sel)) {
-            if ($ultimo) {
-                $sec[] = $link_start.'<img src="/MECON/images/general_carp2_f3" border="0">'.$link_end;
-            }
-            else {
-                $sec[] = $link_start.'<img src="/MECON/images/general_carp1_f3" border="0">'.$link_end;
-            }
+            $sec[] = $link_start.'<img src="/MECON/images/general_carpeta_f3" border="0">'.$link_end;
         }
         else {
-            if ($ultimo) {
-                $sec[] = $link_start.'<img src="/MECON/images/general_carp2_f2" border="0">'.$link_end;
-            }
-            else {
-                $sec[] = $link_start.'<img src="/MECON/images/general_carp1_f2" border="0">'.$link_end;
-            }
+            $sec[] = $link_start.'<img src="/MECON/images/general_carpeta" border="0">'.$link_end;
         }
         
-        $sec[] = '<font face="Arial, Helvetica, sans-serif" size="1" color=""><b>'.$link_start.'&nbsp;&nbsp;'.$this->_nombre.$link_end.'</b></font>';
+        $nombre = strstr($this->_nombre, '-');
+        $nombre = substr($nombre, 1);
+        $sec[] = '<font face="Arial, Helvetica, sans-serif" size="1"><p>'.$nombre.'</p></font>';
         return $sec;
     }
-    // -X2C
-
-} // -X2C Class :Seccion
-
+}
 ?>
\ No newline at end of file