diff options
author | ramon <ramongomez@us.es> | 2009-10-29 10:39:24 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2009-10-29 10:39:24 +0000 |
commit | 1b9262949ad2e32b4a82338d45fb4b6e5b293fba (patch) | |
tree | 3aee6892f32251570b996f7321a06980588cbc1e /admin/WebConsole/clases/MenuContextual.php | |
parent | afcf2a19aa44ea6d03e02abd05b6f2938d687225 (diff) |
Reorganización directorios OpenGNSys Admin.
git-svn-id: https://opengnsys.es/svn/trunk@455 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/WebConsole/clases/MenuContextual.php')
-rw-r--r-- | admin/WebConsole/clases/MenuContextual.php | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/admin/WebConsole/clases/MenuContextual.php b/admin/WebConsole/clases/MenuContextual.php new file mode 100644 index 00000000..4c05013e --- /dev/null +++ b/admin/WebConsole/clases/MenuContextual.php @@ -0,0 +1,164 @@ +<?php +/*================================================================================================== +Clase para trabajar con menús contextuales. + + Especificaciones de las etiquetas XML: + - MENUCONTEXTUAL: Elemento raiz en el se especifican los atributos del <DIV> + - ITEM: Especificaciones de cada item. + - SEPARADOR: Indica una linea divisoria entre items + + Especificaciones de atributos: + - idctx: Identificador del menu contextual (DIV) + - imgitem: La url de la imagen que acompañará al literal + - alignitem: La alineación del texto del item (por defecto left) + - textoitem: El literal del item + - subflotante: Si el item despliega otro menu contextual. El valor es el id de ése + - maxanchu: Máxima anchura del menu contextual + - swimg: Vale 1 si el menu tiene algún item con imagen y 0 en caso contrario + - alpulsar: Nombre de la función javascript que se ejecutará en respuesta al evento onclick + - clase: Estilo CSS que tendrán los item menu contextual + - origen_x: Posición de origen, coordenada x + - origen_y: Posición de origen, coordenada y + + + Especificaciones de eventos: + - Los eventos onmouseover y onmouseout están implicitos en la clase por defecto + Especificaciones de submenus: + - Si una opción lleva un submenu asociado el id de éste va en el atributo name del <TR> + + +==================================================================================================*/ +class MenuContextual{ + Function MenuContextual($urlImages="../images/flotantes"){ + $this->urlImg=$urlImages; + } + /*--------------------------------------------------------------------------------------------- + Devuelve una cadena en formato HTML de un layer para usarlo como menu contextual + Parametros: + - cadenaXML: Una cadena en formato XML con los atributos de cada item + ---------------------------------------------------------------------------------------------*/ + function CreaMenuContextual($cadenaXML){ + $idx=0; + $layer=""; + $idctx=""; + $maxanchu=100; + $swimg=0; + $imgitem=""; + $alignitem=""; + $textoitem=""; + $clase=""; + $subflotante=""; + $origen_x="0"; + $origen_y="0"; + + $gXML=new XmlPhp($cadenaXML,0); + $gXML->NodoRaiz(); + $atributosHTML=$gXML->Atributos(); + $atributosHTML=$gXML->TomaAtributoEspecial("maxanchu",$maxanchu,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("swimg",$swimg,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("clase",$clase,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("idctx",$idctx,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("origen_x",$origen_x,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("origen_y",$origen_y,$atributosHTML); + if(empty($origen_x)) $origen_x=0; + if(empty($origen_y)) $origen_y=0; + if (!$clase) $clase="menu_contextual"; + $layer.='<DIV class="'.$clase.'" id="'.$idctx.'" width='.$maxanchu.' style="visibility:hidden;position:absolute;top:'.$origen_y.';left:'.$origen_x.'" >'; + $nuitems=2; + if ($gXML->PrimerNodoHijo()){ + $layer.='<TABLE border=0 width='.$maxanchu.' border=0 cellspacing=0 cellpadding=0>'; + $layer.='<TR width='.$maxanchu.' height=3>'; // Primera linea + $layer.='<TD width=3 background="'.$this->urlImg.'/esi.gif"></TD>'; + $layer.='<TD colspan=6 background="'.$this->urlImg.'/lsu.gif"></TD>'; + $layer.='<TD width=3 background="'.$this->urlImg.'/esd.gif"></TD>'; + $layer.='</TR>'; + + $layer.='<TR width='.$maxanchu.' height=3>'; // Linea de relleno + $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD colspan=4></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; + $layer.='</TR>'; + do{ + $nuitems++; + $atributosHTML=$gXML->Atributos(); + $tiponodo=$gXML->NombreNodo(); + if ($tiponodo=="ITEM"){ + $atributosHTML=$gXML->TomaAtributoEspecial("imgitem",$imgitem,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("textoitem",$textoitem,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("subflotante",$subflotante,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("alpulsar",$alpulsar,$atributosHTML); + $atributosHTML=$gXML->TomaAtributoEspecial("alignitem",$alignitem,$atributosHTML); + + if ($alignitem==null) $alignitem="left"; + + $clickcontextual=' onclick="'.$alpulsar.'" '; + $oncontextual=' onmouseover="sobre_contextual(this)" '; + $offcontextual=""; + + $idx++; + $layer.='<TR id='.$idx.' name="'.$subflotante.'" width='.$maxanchu.' '.$clickcontextual.' '.$oncontextual.' '.$offcontextual.' height=20>'; // Linea de item + $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; + $layer.='<TD width=3></TD>'; + + if ($imgitem!=null){ // Item con imagen + $imgonclick=""; + $layer.='<TD width=20 align=center id="TDimg-'.$idx .'"><IMG width=16 src="'.$imgitem.'"></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD align='.$alignitem.' id="TDLit-'.$idx .'" width='.($maxanchu-38).' '.$atributosHTML.'><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>'; + } + else{ + if ($swimg==1){ // Hay algún item con imagen + $layer.='<TD width=20></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD align='.$alignitem.' width='.($maxanchu-38).' '.$atributosHTML.'><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>'; + } + else{ + $layer.='<TD width=10></TD>'; + $layer.='<TD colspan=2 align='.$alignitem.' width='.($maxanchu-25).' ' .$atributosHTML.' ><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>'; + } + } + if ($subflotante!=null) + $layer.='<TD valign=middle><IMG width=3 name="swsbfn" align=left src="'.$this->urlImg.'/swsbfn.gif">'; + else + $layer.='<TD width=3 >'; + $layer.='</TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; + $layer.='</TR>'; + } + if ($tiponodo=="SEPARADOR"){ // Separadores + $layer.='<TR width='.$maxanchu.' height=16>'; // Linea de separación + $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD colspan=4 background="'.$this->urlImg.'/sep.gif"></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; + $layer.='</TR>'; + } + + }while($gXML->SiguienteNodoHermano()); + + $layer.='<TR width='.$maxanchu.' height=3>'; // Linea de relleno + $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD colspan=4></TD>'; + $layer.='<TD width=3></TD>'; + $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; + $layer.='</TR>'; + + + $layer.='<TR width='.$maxanchu.' height=3>'; // Última linea + $layer.='<TD width=3 background="'.$this->urlImg.'/eii.gif"></TD>'; + $layer.='<TD colspan=6 background="'.$this->urlImg.'/lin.gif"></TD>'; + $layer.='<TD width=3 background="'.$this->urlImg.'/eid.gif"></TD>'; + $layer.='</TR>'; + $layer.='</TABLE>'; + $layer.='<INPUT type=hidden value="-1">'; // Representará el índice seleccionado + $layer.='</DIV>'; + } + return($layer); + } +} +?>
\ No newline at end of file |