--- /dev/null
+[$ if ($ENV{'SCRIPT_NAME'} ne "/index.epl" && $ENV{'SCRIPT_NAME'} ne "/Php2Embperl_Session.epl")$]
+[- $http_headers_out{'Location'}="./index.epl" if(!$udat{'user'}); -]
+[-
+use DBI;
+use Data::Dumper;
+#Conecciones a las bases
+$CLEANUP{'bases'} = 0;
+our $bases->{'newsclient'}=[
+ "dbi:mysql:dbname=MEconDAV;host=localhost",
+ "mark",
+ "mark",
+ {RaiseError=>1, AutoCommit=>1}];
+our $bases->{'menu'}=[
+ "dbi:mysql:dbname=USUARIOS;host=localhost",
+ "menu",
+ "menu",
+ {RaiseError=>1, AutoCommit=>1}];
+our $bases->{'liq'}=[
+ "dbi:mysql:dbname=liquidaciones;host=localhost",
+ "me",
+ "me",
+ {RaiseError=>1, AutoCommit=>1}];
+our $bases->{'partidos'}=[
+ "dbi:mysql:dbname=partidos;host=localhost",
+ "partidos",
+ "partidos",
+ {RaiseError=>1, AutoCommit=>1}];
+-]
+[!
+#Precarga del Arbol que genera el menu
+$CLEANUP{'dbh'} = 0;
+my $dbh=DBI->connect(@{$bases->{'menu'}});
+$CLEANUP{'menu'} = 0;
+our $menu = $dbh->selectall_arrayref('
+ SELECT pagina.pagina, pagina.link, pagina.nombre, pagina.tipo, pagina.icono,
+ pagina.descr, pagina.tipo, area.color_obscuro, area.color_claro
+ FROM pagina, area
+ WHERE tipo="A"
+ AND pagina.pagina=area.pagina
+ ORDER BY pagina.pagina');
+
+#Estructura del menu:
+#array de:
+# arrays con:
+# 0 numero
+# 1 link
+# 2 nombre
+# 3 tipo
+# 4 icono
+# 5 descripcion
+# 6 array con las paginas inferiores
+# 7 color claro
+# 8 color obscuro
+# cada pagina inferior tiene:
+# 0 numero
+# 1 link
+# 2 nombre
+# 3 tipo
+# 4 icono
+# 5 descripcion
+# 6 array con las paginas inferiores
+
+#esta es una lista invertida de los links y las areas para rastrear que menu mostrar a partir de que pagina muestra
+#se podria hacer del arbol pero seria algo lento
+$CLEANUP{'busc_area'} = 0;
+our $busc_area;
+$busc_area->{"$_->[1]"} = $_->[0]-1 foreach (@$menu);
+
+#Carga recursiva de hojas
+sub cargarinferiores($$)
+{
+ my $pag = shift;
+ my $area = shift;
+ $pag->[6]= $dbh->selectall_arrayref("
+ SELECT pagina.pagina, pagina.link, pagina.nombre, pagina.tipo, pagina.icono, pagina.descr
+ FROM pagina
+ WHERE pagina.pagina_sup=$pag->[0]
+# AND pagina.tipo <> 'O'
+ ORDER BY pagina.tipo, pagina.nombre");
+ my $tmp= $dbh->selectall_arrayref("
+ SELECT pagina.link
+ FROM pagina
+ WHERE pagina.pagina_sup=$pag->[0]
+ AND pagina.tipo <> 'L'");
+ $busc_area->{"$_->[0]"}=$area foreach (@$tmp);
+
+ cargarinferiores($_,$area) foreach (@{$pag->[6]});
+};
+
+cargarinferiores($_,$_->[0]-1) foreach (@$menu);
+#estas variables se usan para generar el codigo del menu, se inicializan fuera por velocidad
+my $bg_color; my $fg_color; my $tam; my $link_ini; my $link_fin;
+my $b_ini; my $b_fin; my $tab; my $new_frame;
+!]
+[!
+sub rama_abierta($$)
+{
+ $rama = shift;
+ $link = shift;
+ return 1 if ($rama->[1] eq $link);
+ return 1 if ($rama->[1] =~ /^$link?/);
+ foreach (@{$rama->[6]})
+ {
+ return 1 if rama_abierta($_, $link);
+ }
+ return 0;
+};
+
+#global para saber en que nivel estoy;
+$xtab='';
+
+sub Linea($$$)
+{
+ my $l = shift;
+ my $color_oscuro = shift;
+ my $color_claro = shift;
+ $activo = '';
+ foreach (@{$l->[6]})
+ { $activo = true if ($_->[1] =~ /^$ENV{'SCRIPT_NAME'}/); }
+ $bg_color = 'CCCCCC';
+ if ($l->[1] =~ /^$ENV{'SCRIPT_NAME'}/ or $activo )
+ {
+ $bg_color = $color_claro;
+ $tipo_pag = $l->[3];
+ }
+ $fg_color= '000000';
+ $tam = "size='0'";
+ $link_ini = ''; $link_fin='';
+ $b_ini=''; $b_fin='';
+ $tab='- ';
+ $new_frame='';
+ $new_frame='target=_blank' if($l->[3] eq 'L');
+ if ($l->[1])
+ { $link_ini = "<A href='$l->[1]' $new_frame>"; $link_fin = "</A>"; }
+ if($l->[3] eq 'S')
+ {
+ $bg_color = $color_oscuro;
+ $fg_color = 'FFFFFF';
+ $tam = "size='2'";
+ $b_ini = "<B>"; $b_fin= "</B>";
+ $tab='';
+ }
+ my $linea_html = "
+ <TR align='left' valign='top' bgcolor='#$bg_color'>
+ <TD>
+ $b_ini$link_ini
+ <FONT face='Arial, Helvetica, sans-serif' color='#$fg_color' $tam>
+ $xtab$tab$l->[2]
+ </FONT>
+ $link_fin$b_fin
+ </TD>
+ </TR>";
+ foreach (@{$l->[6]})
+ {
+ if ($_->[3] ne 'O')
+ {
+ my $oldtab = $xtab;
+ $xtab .= ' ' if (($l->[3] ne "S")and($l->[3] ne "S"));
+ $linea_html .= Linea($_, $color_oscuro, $color_claro) if
+ (rama_abierta($l,$ENV{'SCRIPT_NAME'})or(!$l->[1]));
+ $xtab = $oldtab;
+ }
+ }
+ return $linea_html;
+};
+
+sub DesplegarMenu($)
+{
+ $area = shift;
+ $tipo_pag = 'A';
+ foreach (@{$area->[6]})
+ {
+ $menu_html .= Linea($_, $area->[7], $area->[8]);
+ $tipo_pag = 'A' if ($_->[1] =~ /^$ENV{'SCRIPT_NAME'}/ );
+ }
+ return $menu_html;
+};
+!]
+[-
+our $char_menu = DesplegarMenu($menu->[$busc_area->{"$ENV{'SCRIPT_NAME'}"}])
+-]
+[-
+$ret = shift;
+$ret->{'bases'} = $bases;
+$ret->{'menu'} = $menu;
+$ret->{'busc_area'} = $busc_area;
+-]
+
+<HTML>
+ <HEAD>
+ <TITLE>INTRANET DEL MINISTERIO DE ECONOMIA </TITLE>
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <SCRIPT language="JavaScript">
+ <!--
+ function MM_swapImgRestore() { //v3.0
+ var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
+ }
+
+ function MM_displayStatusMsg(msgStr) { //v1.0
+ status=msgStr;
+ document.MM_returnValue = true;
+ }
+
+ function MM_preloadImages() { //v3.0
+ var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
+ var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
+ if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
+ }
+
+ function MM_findObj(n, d) { //v3.0
+ var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
+ d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
+ if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
+ for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
+ }
+
+ function MM_swapImage() { //v3.0
+ var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
+ if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
+ }
+
+ function MM_openBrWindow(theURL,winName,features) { //v2.0
+ window.open(theURL,winName,features);
+ }
+
+
+ //-->
+ </SCRIPT>
+
+ <STYLE type="text/css">
+ <!--
+ .justificar { text-align: justify}
+ <style type="text/css">^M
+ .linkmenu { color: #FFFFFF}
+ .linkpagina { color: #[+ $area->[8] +]}
+ -->
+ </STYLE>
+
+ </HEAD>
+ <BODY bgcolor="#FFFFFF" onload="MM_preloadImages('/gif/inf_f2.gif','/gif/consultas_f2.gif','/gif/g_central_f2.gif','/gif/g_local_f2.gif','/gif/servicios_f2.gif', '/gif/inf_f3.gif','/gif/consultas_f3.gif','/gif/g_central_f3.gif','/gif/g_local_f3.gif','/gif/servicios_f3.gif', '/gif/inf_f4.gif','/gif/consultas_f4.gif','/gif/g_central_f4.gif','/gif/g_local_f4.gif','/gif/servicios_f4.gif')" leftmargin="5" topmargin="5" marginwidth="5" marginheight="5" text="#000000" link="#333333" vlink="#666666" alink="#999999">
+ <TABLE width="760" border="0" cellspacing="0" cellpadding="0" align="center">
+ [$ if defined $fdat{'debug'} $]
+ [- Execute ('debug.epl') -]
+ [$ else $]
+ [- Execute ('cabecera.epl') -]
+ [$ endif $]
+ [$ if ($ENV{'SCRIPT_NAME'} ne '/mapa.epl') $]
+ <TR align="left" valign="top">
+ <TD width="154" bgcolor="#999999">
+ <TABLE width="152" border="0" cellspacing="1" cellpadding="0" bgcolor="#999999">
+ [+ $char_menu +]
+ <TR height=150><TD></TD></TR>
+ </TABLE>
+ </TD>
+ <TD width="8"><IMG src="/gif/shim.gif" width="8" height="1"></TD>
+ <TD width="600">
+ <TABLE width="600" border="0" cellspacing="0" cellpadding="0">
+ <TR bgcolor="#FFCC99">
+ <TD align="left" valign="middle">
+ [- Execute('barra_areas.epl')-]
+ </TD>
+ </TR>
+ <TR>
+ <TD width=600 border=0>
+ [-
+ if (-f $ENV{'SCRIPT_FILENAME'})
+ { Execute('*'); }
+ else
+ { Execute('auto_pag.epl') }
+ -]
+ </TD>
+ </TR>
+ </TABLE>
+ </TD>
+ </TR>
+ <TR align="center" valign="middle" bgcolor="#FFFFFF">
+ <TD colspan="3">
+ <FONT face="Arial, Helvetica, sans-serif" size="1">
+ <A href="inf.epl">Información</A> | <A href="servicios.epl">Servicios</A> | <A href="consultas.epl">Consultas</A> | <A href="g_horizontal.epl">Gestión Horizontal</A> | <A href="g_local.epl">Gestión Local</A>
+ </FONT>
+ </TD>
+ </TR>
+ <TR align="center" valign="middle">
+ <TD colspan="3" bgcolor="#CCCCCC">
+ <FONT face="Arial, Helvetica, sans-serif" size="1">
+ Copyright © 2001 Ministerio de Economía
+ </FONT>
+ </TD>
+ </TR>
+ [$ else $]
+ <TR>
+ <TD>
+ [- Execute('*'); -]
+ </TD>
+ </TR>
+ [$ endif $]
+ </TABLE>
+ </BODY>
+</HTML>
+[$ else $]
+ [- Execute('*') -]
+[$ endif $]