Foros del Web » Programando para Internet » PHP »

Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típica lista "

Estas en el tema de Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típica lista " en el foro de PHP en Foros del Web. Hola amigos, estoy haciendo mi web personal con un poco de php. Se me ha ocurrido que sería interesante que según vas pinchando en los ...
  #1 (permalink)  
Antiguo 17/01/2009, 17:40
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típica lista "

Hola amigos, estoy haciendo mi web personal con un poco de php.

Se me ha ocurrido que sería interesante que según vas pinchando en los diferentes enlaces del menú de la web, estos se queden iluminados según la sección en la que estés.
Es decir, que si pinchas en "fotos", por ejemplo, pues al cargar la página "fotos.php", se quede iluminado o marcado el enlace "fotos" en el menú.

Vamos que la idea es: "Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típica lista "<ul></ul>" según la sección de la web en la que se esté, y en la que está dicho menú."

He creado un pseudocódigo, y aquí es donde necesito vuestra ayuda para escribirlo en php sin cometer errores en la sintaxis de PHP. Yo no se apenas php, por eso necesito vuestra ayuda.

Seguramente sea un código muy "redundante", pero si me ayudais a escribirlo bien luego podemos ir mejorandolo y "automatizarlo" muchisimo mas, hacerlo mas escalable y utilizable en miles de situaciones.

Os dejo el pseudocódigo, por favor echadle un vistazo a ver como podemos empezar a escribirlo:

PSEUDOCODIGO:

Código PHP:
funcion seccion_Seleccionada (){


$url HTTP geturl;

//aquí mi url será la url de la web: "http://www.nombreweb.com/paginas/lapaginaquesea.php", así que:

$direccionweb "la cadena de texto de $url menos lo que haya a partir de 'paginas/'";


//aquí la idea es concatenar $direccionweb con la pagina correspondiente a cada sección y meter todo en
//diferentes variables que corresponden a las diferentes secciones de la web.

$portada $direccionweb."portada.php";

$inicio $direccionweb."inicio.php";

$personal $direccionweb."personal.php";

$foto $direccionweb."foto.php";

$ilustracion $direccionweb."ilustración.php";

$contacto $direccionweb."contacto.php";


//por lo tanto:

if (){

$portada $url

echo "<div class='fnd_cabecera'></div>"
echo "<div class='base_cabecera'>"
echo "<div class='logotipo'></div>"
echo "<div class='menu_cabecera' align='right'>"
echo "<ul>"

//pues en este if, si $portada es igual a la direccion que tiene $url se iluminaría o tendría
//un efecto especial este elemento <li> de la lista que genera el menu, y así con cada opción.

echo "<li><a href='portada.php' target='_self' title='portada' class='menucab_e1 verdana_es'>portada</a></li>"
echo "<li><a href='inicio.php' target='_self' title='inicio' class='menucab_e1 verdana_es'>inicio</a></li>"
echo "<li><a href='personal.php' target='_self' title='personal' class='menucab_e1 verdana_es'>personal</a></li>"
echo "<li><a href='foto.php' target='_self' title='foto' class='menucab_e1 verdana_es'>foto</a></li>"
echo "<li><a href='ilustracion.php' target='_self' title='ilustración' class='menucab_e1 verdana_es'>ilustración</a></li>"
echo "<li><a href='contacto.php' target='_self' title='contacto' class='menucab_e1 verdana_es'>contacto</a></li>"
echo "</ul>"
echo "</div>"
echo "</div>"

}

else {

$inicio $url

echo "<div class='fnd_cabecera'></div>"
echo "<div class='base_cabecera'>"
echo "<div class='logotipo'></div>"
echo "<div class='menu_cabecera' align='right'>"
echo "<ul>"
echo "<li><a href='portada.php' target='_self' title='portada' class='menucab_e1 verdana_es'>portada</a></li>"

//aquí en este "else" se iluminaría o destacaría el <li> de "inicio".

echo "<li><a href='inicio.php' target='_self' title='inicio' class='menucab_e1 verdana_es'>inicio</a></li>"
echo "<li><a href='personal.php' target='_self' title='personal' class='menucab_e1 verdana_es'>personal</a></li>"
echo "<li><a href='foto.php' target='_self' title='foto' class='menucab_e1 verdana_es'>foto</a></li>"
echo "<li><a href='ilustracion.php' target='_self' title='ilustración' class='menucab_e1 verdana_es'>ilustración</a></li>"
echo "<li><a href='contacto.php' target='_self' title='contacto' class='menucab_e1 verdana_es'>contacto</a></li>"
echo "</ul>"
echo "</div>"
echo "</div>"
}

else {

$personal $url

bla bla bla
el codigo con los echos...

//aquí en este otro "else" se iluminaría o destacaría el <li> de "personal".

bla bla blael codigo con los echos...

}

else {

$foto $url

bla bla bla
el codigo con los echos...

//aquí en este "else" se iluminaría el <li> de "foto".

bla bla blael codigo con los echos...

}

else {

$ilustracion $url

bla bla bla
el codigo con los echos...

//aquí en este "else" se iluminaría el <li> de "ilustracion".

bla bla blael codigo con los echos...

}

else {

$contacto $url

bla bla bla
el codigo con los echos...

//y finalmente, aquí, en este "else" se iluminaría el <li> de "contacto".

bla bla blael codigo con los echos...


Conclusión, la idea es que se muestre un diseño de menu u otro dependiendo de la url en la que se esté.

finalmente con un include, pues incluimos el menu en cualquier página php del sitio y listo!

Se que seguramente esto se pueda hacer con javascript o algun otro lenguaje, pero no sabría hacerlo, y además con javascript si alguien tiene desactivado el javascript en su navegador el efecto ya no funcionaría.
Con PHP es mucho mejor.

^_^

Última edición por walvaRo; 17/01/2009 a las 17:56
  #2 (permalink)  
Antiguo 17/01/2009, 18:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 198
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típ

Hola.
Pues la verdad es qeu no me he mirado tu código muy a fondo. Pero yo lo haría utilizando php_self.
Despues pasas los enlaces a una variable como haces hasta ahora:
$secciones=array("fotos.php", "index.php"...);
.... y así

después haces un bucle que se repita tantas veces como secciones tiene la página, con el siguiente condicionalç
cada enlace lo relacionas así:
$seccion=$secciones[$i];
($i sería la variable del bucle que se va incrementando cada vez)
y depues:
if (php_self=$seccion){ aquí va el formato si es la seccion en la que estas ahora
} else{

aquí va el formato si no es la sección
}

No se si me habre explicado con claridad!;)
dime como te va esa solucion! chao!
  #3 (permalink)  
Antiguo 17/01/2009, 18:20
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típ

Hola mitobo, ¿que es lo que hace "php_self"?

Lo del array es buena idea para tener mas organizado el codigo, es una manera mas dinamica de acceder y almacenar los enlaces. Habrá que intentar utilizarla, pero no se muy bien aun como funciona el array, ¿me lo explicas mas?

cuando comentas lo de: "$seccion=$secciones[$i];"
"$i", ¿es la que indica la posición del array en cada vuelta del bucle?
¿cómo le digo a "$i" la posición?

¿hay que repetir la línea: "$seccion=$secciones[$i];" en cada vuelta del bucle?, ¿o como funciona?

en: "if (php_self=$seccion)" ¿se supone que compara la url con la url de la sección? es que no entiendo muy bien que hace o que compara ahí...
  #4 (permalink)  
Antiguo 17/01/2009, 18:26
 
Fecha de Ingreso: mayo-2008
Mensajes: 198
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típ

mmm a ver:
donde pone php_self es solo un ejemplo, tienes que mirar cómo funciona exactamente php_self y aplicarlo. Ahora no me lo se de memoria, pero sirve para saber el nombre del archivo que lo cotiene.
$i es el 'numerito' que genera el bucle cada vez.
$secciones=array("fotos.php", "index.php");
for ($i=1; $i>=2; $i++){

$seccion=$secciones[$i];
if $seccion==$PHP_SELF(hay que aplicarlo bien este es solo un ejemplo, lo hago de memoria){
mostramos el formato para los links de la pagina actual
} else{

mostramos los links 'normales'
}

espero darme a entender. saludos

}
  #5 (permalink)  
Antiguo 17/01/2009, 18:34
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típ

Ah! osea que "$i>=2" contiene 2 por que hay 2 secciones en el array, ¡así que a mas secciónes ponemos un numero mas alto que corresponda!

Y en cuanto al "if $seccion", siempre será igual a alguna seccion, por lo que el diseño por defecto del "else", no se verá.

Voy a ver si puedo empezar a escribir algo en claro.
  #6 (permalink)  
Antiguo 17/01/2009, 18:38
 
Fecha de Ingreso: mayo-2008
Mensajes: 198
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típ

Veo que no entiendes mucho los bucles.
Eso de if (seccion=seccion_Actual) se aplica cada seccion por separado.
se trata que el bucle repite eso tantas veces como pongas (2 en este caso).
Mirate algo sobre como funcionan los bucles;) saludos!
  #7 (permalink)  
Antiguo 17/01/2009, 19:04
 
Fecha de Ingreso: febrero-2004
Mensajes: 446
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típ

Entonces, ¿repetiremos el "if" tantas veces como secciones tengamos? ¿o se repite de manera automatica dentro del bucle?
  #8 (permalink)  
Antiguo 17/01/2009, 19:06
 
Fecha de Ingreso: mayo-2008
Mensajes: 198
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Cómo iluminar o hacer que destaque un enlace de un menú, creado con la típ

Se repite automaticamente dentro del bucle;)
sino, no hariamos bucle y lo hariamos 'a mano'
salud!
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 15:28.