Foros del Web » Programando para Internet » PHP »

Ayuda con la sentencia INCLUDE(archivo);

Estas en el tema de Ayuda con la sentencia INCLUDE(archivo); en el foro de PHP en Foros del Web. Recurro una vez más a ustedes ya que me están sacando de muchas dudas, gracias por este foro. Estoy realizando mis primeros pasos en php ...
  #1 (permalink)  
Antiguo 06/05/2005, 15:29
 
Fecha de Ingreso: abril-2005
Mensajes: 15
Antigüedad: 12 años, 8 meses
Puntos: 0
Ayuda con la sentencia INCLUDE(archivo);

Recurro una vez más a ustedes ya que me están sacando de muchas dudas, gracias por este foro.

Estoy realizando mis primeros pasos en php y quisiera saber si hay alguna forma de manejar un menú a través de la sentencia INCLUDE(archivo);

La idea es la siguiente:

Genero un menú con elementos javascripts e imágenes a través de Fireworks, ya que es una manera rápida y cómoda de generarlo.

Al exportar el menú me genera una serie de archivos con las divisiones de imagenes y 2 archivos más, uno es el .html que se inserta en Dreamweaver y otro es el mm_menu.js que tiene las funciones propias del js que permiten el tema de los menúes desplegables.

A partir de esto, yo divido el .html en dos, por un lado la parte javascript que contiene dentro y por otro lo que es puramente html, y con este último grabo un archivo que llamo por ejemplo: menu.inc.

Todo este conjunto de archivos lo guardo en un directorio en particular dentro de mi sitio, por ejemplo /manusource.

Lo siguiente es "convocar" mendiante <script></script> los js y meidante el comando o sentencia include("menusource/menu.inc"); el menú desde cada una de las páginas.

Hasta aquí funciona todo a las mil maravillas, siempre y cuando el menú se invoque desde un mismo directorio supongamos /root.

La cosa empieza a complicarse cuando intento "traer" el menú desde otro directorio, por ejemplo /root/paginas, con lo cual, no se encuentran más los archivos por la ruta virtual que tienen. Es decir, las imagenes que antes convocava desde /root, ahora la estoy convocando desde /root/paginas, con lo que tendría que cambiar los src de las imagenes por ejemplo para que siga funcionando todo bien.

Me gustaría saber si existe una solución para que el menú quede guardado en una carpeta pura y exclusivamente del menú y se pueda llamar ese menú desde cada una de las páginas del sitio en manera independiente.

Obviamente lo que estoy tratando de hacer es para no tener código redundante a lo largo de las páginas y para que si tengo que cambiar algo en el menú, por ejemplo un link, cambiarlo en un solo archivo y sirva para todo el sitio.

Desde ya muchas gracias y perdonen lo extenso del post.
__________________
Saludos y gracias :adios:
  #2 (permalink)  
Antiguo 06/05/2005, 15:43
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
prueba con esto:
include("./menusource/menu.inc");

Saludos,
  #3 (permalink)  
Antiguo 06/05/2005, 15:54
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
mmm haber si entendi tu problema, supongamos que tienes estos directorios:

--> host.com/menu/ # aqui dentro todo lo de tu menu (menu.html, confi.js)
--> host.com/menu/ index.php # path raiz, donde llamas tu menu
--> host.com/seccion1/index.php # 1 de tus secciones donde llamas el menu


SOLUCION 1: llamas ambos archivos, digamos que tu menu consiste en confi.js, y menu.html. EJ: (host.com/seccion1/index.php)
Código PHP:
include("../menu/menu.html");
include(
"../menu/confi.js");
// claro esta, en sus respectivas TAGS HTML ( dentro de body o head ) 
[BR]
menu.html. EJ: (host.com/index.php)
Código PHP:
<?
include("menu/menu.html");
include(
"menu/confi.js");
// claro esta, en sus respectivas TAGS HTML ( dentro de body o head )
?>
mas o menos harias eso para llamar tu menu desde cualquier directorio, pero que si tu menu contiene imagenes, bien, podrias crear una pequeña carpeta en cada directorio donde tengas tus 2 que 3 imagenes y el archivo de config.js siempre indique el mismo path hacia las imagenes ( EJ: "shapes/img_over.gif" )....

de esa forma solucionarias lo que comentabas, con el simple hecho de modificar tu archivo de confi.js o menu.html cambiara de igual forma en cualquier pagina donde lo aigas incluido.

creo que hay mas soluciones, un poco mas complicadas, si te sirve esa adelante ( la considero fiable ).

NOTA: Te sujiero que no postees de la forma en la que lo hiciste, hay que tratar de ser claros, y rapidos, creoq ue todos aqui sabemos como se hace un include, y en ocaciones resulta algo tedioso, leer tanta logica ( comentario personal )

Saludos !
  #4 (permalink)  
Antiguo 06/05/2005, 15:57
 
Fecha de Ingreso: abril-2005
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Podrias tener un index, donde incluyas lo siguiente:

HEADER (opcional)
BODY(en este archivo, dependiendo de la variable MODULO, incluyes la seccion correspondiente para mostrar su contenido)
MENU(aqui es donde incluyes el menu html+js que genero Fireworks...te digo porque o tambien lo uso.)
PIE(aqui pones alguna tontera que puedes cambiar desde la base o algo que te guste...

------------------------------------------------------------------------

De esta manera, solamente tendras que tener que poner los links con el:
"?mod=nombreseccion"
para que el body los incluya y se muestren.(Recuerda tener los archivos con el nombre correspondiente a el de la variable mod.)

Un ejemplo para body puede ser:

<?php
if (!$mod)´
(llave)
(llave)
else
(llave)
include("secciones/".$mod.".php");
(llave)
?>

El resto, es facil...prueba lo que te digo, que es eficaz (aunque no se si es la mejor manera...)

Salu2
  #5 (permalink)  
Antiguo 06/05/2005, 16:15
 
Fecha de Ingreso: abril-2005
Mensajes: 15
Antigüedad: 12 años, 8 meses
Puntos: 0
Cita:
Iniciado por dwaks
prueba con esto:
include("./menusource/menu.inc");

Saludos,
En este caso, al colocar "./" antes de menusource ¿Estoy accediendo desde cualquier directorio del sitio o desde el directorio donde se encuentra la página abierta?

------------------------------------------------------------

Danger: muchas gracias por tu sugerencia, a veces me complico escribiendo demasiado.

La solución que me proponés es tener tantos llamadas al menú diferentes como directorios tenga el sitio. No entendí muy bien el tema de las imágenes en un directorio, dentro de cada directorio????. Nop, honestamente no lo entendí.

-------------------------------------------------------------

Phantom Lord:

Entiendo que tengo que generar un archivo index.??? en la carpeta del menú que contenga esa estructura?
__________________
Saludos y gracias :adios:
  #6 (permalink)  
Antiguo 06/05/2005, 19:36
 
Fecha de Ingreso: abril-2005
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Lo que yo entendi de tu mensaje, es que quieres llamar el codigo js que esta en otro archivo, o sea, que llamas a el archivo que te genera el fireworks despues de separar el codigo html del js....creo que entendi bienn.. nose,, explicate cualquier cosa...
porque lo que yo te puse hay era para que no tuvieras que cambiar el root del include del menu sin importar la seccion porque siempre estaras en un mismo archivo (index.php)...entiendes?

Salu2
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 19:30.