]> git.llucax.com Git - mecon/meconlib.git/blobdiff - marco/php/marco/Seccion.php
- Cambios funcionales
[mecon/meconlib.git] / marco / php / marco / Seccion.php
index 6a47ec9f0167057a097527352761b547a409c9f8..713cc1d0eb88fdb53ddf38cbce6352265f38721f 100644 (file)
@@ -34,6 +34,10 @@ require_once 'Pagina.php';
 //Require Agregados por MMARRE, no pasan por el xmi2code
 require_once 'ImagenAnimada.php';
 require_once 'Menu.php';
+require_once 'MenuHorizontal.php';
+require_once 'MenuVertical.php';
+require_once 'MenuOculto.php';
+
 
 // +X2C Class 16 :Seccion
 /**
@@ -69,6 +73,32 @@ class Seccion extends Pagina {
      */
     var $_hijos;
 
+    /**
+     * Valor string del tipo de menu de la seccion
+     *
+     * @var    string $tipoMenu
+     *
+     * @access private
+     */
+    var $_tipoMenu;
+
+    /**
+     * Lugar en donde esta el sistema.
+     *
+     * @var    string $directorio
+     *
+     * @access private
+     */
+    var $_directorio;
+
+    /**
+     *
+     * @var    string $menuHtml
+     *
+     * @access private
+     */
+    var $_menuHtml;
+
     // ~X2C
 
     // +X2C Operation 63
@@ -76,18 +106,33 @@ class Seccion extends Pagina {
      * Constructor. Recibe como parametro el nombre de la seccion
      *
      * @param  array $seccion Array con la informacion de la seccion
+     * @param  string $directorio Dir en donde esta el sistema
      *
      * @return void
      *
      * @access public
      * @static
      */
-    function Seccion($seccion) // ~X2C
+    function Seccion($seccion, $directorio) // ~X2C
     {
-        $this->_nombre = $seccion['nombre'];
-        $this->_imagen = new ImagenAnimada($seccion['imagenComun']);
-        parent::Pagina($seccion['link']);
-        $this->_cargarHijos($seccion['hijos']);
+        if (array_key_exists('nombre',$seccion)) { 
+            $this->_nombre   = $seccion['nombre'];
+        }
+        if (array_key_exists('imagenComun',$seccion)) {
+            $this->_imagen   = new ImagenAnimada($seccion['imagenComun']);
+        }
+        if (array_key_exists('tipoMenu',$seccion)) {
+            $this->_tipoMenu = $seccion['tipoMenu'];
+        }
+        if (!is_null($directorio)) {
+            $this->_directorio = $directorio;
+        }
+        if (array_key_exists('link',$seccion)) {
+            parent::Pagina($seccion['link']);
+        }        
+        if (array_key_exists('hijos',$seccion)) {
+            $this->_cargarHijos($seccion['hijos']);
+        }
     }
     // -X2C
 
@@ -95,14 +140,22 @@ class Seccion extends Pagina {
     /**
      * 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() // ~X2C
+    function toHtml($link_sel) // ~X2C
     {
-        $tmp = "<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."\" width=\"139\" height=\"54\" border=\"0\" alt=\"".$this->_imagen->_alt."\"></a>";
-        return $tmp;
+        if ($this->verifSeccionSeleccionada($link_sel)) {
+            $sec    = "<a href=\"".$this->_link."\"><img name=\"".$this->_nombre."\" src=\"images/".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\"></a>";
+        }
+        else {
+            $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>";
+        }
+        
+        return $sec;
     }
     // -X2C
 
@@ -118,14 +171,102 @@ class Seccion extends Pagina {
      */
     function _cargarHijos($hijos) // ~X2C
     {
-        $this->_hijos = array ();
+        if ($this->_tipoMenu == 'vertical'){
+            $tmp = new MenuVertical($this->_directorio);
+        }
+        elseif ($this->_tipoMenu == 'horizontal') {
+            $tmp = new MenuHorizontal($this->_directorio);
+        }
+        else {
+            $tmp = new MenuOculto($this->_directorio);
+        }
         foreach ($hijos as $hijo) {
-            $tmp = new Menu (null, $hijo['nombre'],$hijo['link']);
-            array_push($this->_hijos, $tmp);
+            $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
+    {
+        $tmp = PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO;
+        $s = implode("", @file($tmp));
+        return unserialize($s);
+    }
+    // -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";
+        $sec = array ();
+        if ($this->verifSeccionSeleccionada($link_sel)) {
+            if ($ultimo) {
+                $sec[] = '<a href="'.$this->_link.'"><img src="/www/images/carp2_f3" border="0"></a>';
+            }
+            else {
+                $sec[] = '<a href="'.$this->_link.'"><img src="/www/images/carp1_f3" border="0"></a>';
+            }
+        }
+        else {
+            if ($ultimo) {
+                $sec[] = '<a href="'.$this->_link.'"><img src="/www/images/carp2_f2" border="0"></a>';
+            }
+            else {
+                $sec[] = '<a href="'.$this->_link.'"><img src="/www/images/carp1_f2" border="0"></a>';
+            }
         }
+        
+        $sec[] = '<font face="Arial, Helvetica, sans-serif" size="1" color=""><b><a href="'.$this->_link.'" style="'.$style.'">&nbsp;&nbsp;'.$this->_nombre.'</a></b></font>';
+        return $sec;
     }
     // -X2C
 
 } // -X2C Class :Seccion
 
-?>
\ No newline at end of file
+?>