Foros del Web » Programando para Internet » ASP Clásico »

Sistema de menus en ASP

Estas en el tema de Sistema de menus en ASP en el foro de ASP Clásico en Foros del Web. Hola a todos. Necesito hacer una web, sin usar frames ni iframes, con un menú que llame a sus respectivos archivos y que estos se ...
  #1 (permalink)  
Antiguo 14/03/2005, 19:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 20 años, 4 meses
Puntos: 0
Sistema de menus en ASP

Hola a todos.
Necesito hacer una web, sin usar frames ni iframes, con un menú que llame a sus respectivos archivos y que estos se carguen dentro de la plantilla general, que es único. La plantilla general esta dividido en varias secciones por medio de una tabla. Una de las celdas contendrá al archivo menú llamado por medio de un include, y habrá otra celda general, en la que se carguen el esto de los archivos que se le llame.
En PHP si se como hacerlo, pero en ASP no lo logro. Aquí les paso el código PHP, para que me puedan ayudar a como hacerlo.

Llamando el archivo menú:
Código:
<?php 
include("menu1.php"); 
?>
Código en la celda general en la cual se cargarán el resto de las páginas llamadas
Código:
<?php 
   if(isset($PATH_INFO)) { 
      $vardata = explode('/', $PATH_INFO); 
        $num_param = count($vardata); 
        if($num_param % 2 == 0) { 
            $vardata[] = ''; 
            $num_param++; 
        } 
        for($i=1; $i<$num_param; $i+=2) { 
            $$vardata[$i] = $vardata[$i+1]; 
        $total=$total + $$vardata[$i]; 
        } 
    } 
?>

<? 
if($cmd== "") { 
include("principal.php");
} 
else { 
if(file_exists("$cmd.php")) { 
include("$cmd.php"); 
} 
else { 
echo("<center>seccion no disponible por el momento</center><br><br>") ;
} 
} 
?>
El enlace en el archivo menú es la siguiente:
"index.php/cmd/nombre_del_archivo/"

Al llamar el archivo en el navegador, se visualiza como sigue:
"http://www.dominio.com/index.php?cmd=nombre_del_archivo"

Al inicio. el archivo que se carga por defecto en la celda general, es:
"principal.php"

Espero su ayuda, por favor.
  #2 (permalink)  
Antiguo 14/03/2005, 21:15
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
con un include SSI, así:
<!--#INCLUDE VIRTUAL="fichero.asp"-->
  #3 (permalink)  
Antiguo 15/03/2005, 10:11
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 20 años, 4 meses
Puntos: 0
Alguna otra idea, por favor?
Con el <!--#INCLUDE VIRTUAL="fichero.asp"--> se puede incluir el fichero, pero como seria el siguiente código en ASP
Código:
<? 
if($cmd== "") { 
include("principal.php");
} 
else { 
if(file_exists("$cmd.php")) { 
include("$cmd.php"); 
} 
else { 
echo("<center>seccion no disponible por el momento</center><br><br>") ;
} 
} 
?>
Existe la funcion file_exists en ASP?

Ayuda por favor.
  #4 (permalink)  
Antiguo 15/03/2005, 10:56
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Primero tenés que saber algo. Los includes en ASP se "ejecutan" (se incluyen, mejor dicho) ANTES que el código ASP se procese. Es decir, no se puede hacer includes dinámicos como en PHP (o casi...). Bueno, para qué seguir escribiendo si está muy bien explicado aquí: http://www.aspfaq.com/show.asp?id=2042

Sobre la pregunta de si existe file_exists en ASP, la respuesta es "si, pero luego de instanciar el objeto FSO (File System Object)". Entonces, tu código PHP se traduciría más o menos así en ASP:



Código:
<% 
' supongo que cmd trae el nombre y extensión de una página
cmd = Request.QueryString("cmd")
if cmd = "" then
a_incluir = "inicio.asp"
Server.Execute(a_incluir)
else

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Server.MapPath(cmd)) Then
a_incluir = cmd
Set FSO = Nothing
Server.Execute(a_incluir)
Else
Response.Write "<center>seccion no disponible por el momento</center><br><br>"
End if
End if
%>

Saludos y bienvenido al complejo mundo de ASP
__________________
...___...
  #5 (permalink)  
Antiguo 15/03/2005, 11:15
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias Al Zuwaga. Una consultita más, el "cmd" al que hago referncia, solo trae el nombre del archivo, pero no la extención. Todas las extenciones son asp. En este caso, habria una posible solución?
Gracias de antemano.
  #6 (permalink)  
Antiguo 15/03/2005, 13:43
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Claro, cambiar esto:

Código:
' supongo que cmd trae el nombre y extensión de una página
cmd = Request.QueryString("cmd")
if cmd = "" then
por esto:

Código:
' supongo que cmd trae SOLO el nombre del archivo, sin la extensión (que se la agrego "a mano" xD)
cmd = Request.QueryString("cmd") & ".asp"
if cmd = "" OR cmd = ".asp" then
Saludos
__________________
...___...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:00.