Hola a todos, voy al grano. Tenía un code que es el menú de una página web, algo así:
<li class="current_page_item"><a href="#">Inicio</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index2.php">¿Quiénes somos?</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index3.php">Trabajo comunitario</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index4.php">¿Por qué reciclar?</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index6.php">Campaña</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index7.php">¡Comente!</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="index5.php">¡Hágase cliente!</a></li>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="#">Contacto</a></li>
Entonces, para no repetirlo en cada index y hacerlo más dinámico se me ocurrió automatizarlo de la siguiente forma:
1. Crear un archivo config.php donde indico la cantidad de secciones totales, el nombre y link de cada sección. Y además, una función que hice para obtener solo el nombre de la pag. actual:
<?php
$web_habilitada = "1";
//Secciones
$total_secciones = "7";
$seccion1 = "Inicio";
$seccion1_link = "index.php";
$seccion2 = "¿Quiénes somos?";
$seccion2_link = "index2.php";
$seccion3 = "Trabajo comunitario";
$seccion3_link = "index3.php";
$seccion4 = "¿Por qué reciclar?";
$seccion4_link = "index4.php";
$seccion5 = "Campaña";
$seccion5_link = "index5.php";
$seccion6 = "Repartos";
$seccion6_link = "index6.php";
$seccion7 = "¡Hágase cliente!";
$seccion7_link = "index7.php";
//Funciones
function pagina_actual() {
$pagina = $_SERVER['REQUEST_URI'];
$pagina_actual = str_replace("/", " ", $pagina);
echo trim($pagina_actual);
}
?>
2. En cada index, fijo un for en 1, y me fijo si es menor que la cantidad de secciones totales que indica config.php. A su vez, me fijo si la página actual es igual a la sección que voy a escribir (porque utilizo un estilo de css diferente cuando estamos en una página, es decir, en la sección aparece en verde el nombre de la página actual):
<?php
for($a = 1; $a < $total_secciones; $a++) {
$pag = pagina_actual();
if($pag == $sección.$a) {
?>
<li class="current_page_item"><a href="<?php echo $sección.$a_link; ?>"><?php echo $sección.$a; ?></a></li>
<?php
} else {
?>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="<?php echo $sección.$a_link; ?>"><?php echo $sección.$a; ?></a></li>
<?php
}
}
?>
Entonces, la idea sería que imprima las cosas bien como lo indica el config.php. Pero me imprime:
(http://s3.subirimagenes.com:81/otros/previo/thump_6392914asd.jpg) (http://www.subirimagenes.com/otros-asd-6392914.html)
Y si lo pienso, lo que no puede hacer es unir $sección con la variable $a del for y crear una única sección, por ejemplo seccion1. No se me ocurre como hacer... ¿Alguien me puede dar una ayuda?.
Gracias!
Es mejor una matriz, así:
$sPoC[0] = array("Inicio", "index.php"); $sPoC[1] = array("¿Quiénes somos?", "quienes_somos.php"); $sPoC[2] = array("Trabajo comunitario", "trabajo_comunitario.php"); $sPoC[3] = array("¿Por qué reciclar?", "porque_reciclar.php");
for( $i = 0; $i < count( $sPoC ); $i++ ){ print "Nombre: ".$sPoC[$i][0]."\n";
print "Archivo: ".$sPoC[$i][1]."\n\n";
}
Salida:shellroot@alex:~/Escritorio$ php PoC.php
Nombre: Inicio
Archivo: index.php
Nombre: ¿Quiénes somos?
Archivo: quienes_somos.php
Nombre: Trabajo comunitario
Archivo: trabajo_comunitario.php
Nombre: ¿Por qué reciclar?
Archivo: porque_reciclar.php
Muchas gracias!. Por ese lado, ya está solucionado. Ahora tengo otro problema:
• NO me funciona la parte que verifica si es la página actual, así se le indica otro estilo de css.
• Me muestra un separador antes que la primera sección.
<?php
for($a = 0; $a < count($sección); $a++) {
$pag = pagina_actual();
if($pag == $sección[$a][1]) {
?>
<li class="current_page_item"><a href="<?php echo $sección[$a][1]; ?>"><?php echo $sección[$a][0]; ?></a></li>
<?php
} else {
?>
<li ><a style="margin-top:-15px; padding-left:0px; padding-right:0px"><img src="images/img04.jpg"/></a></li>
<li><a href="<?php echo $sección[$a][1]; ?>"><?php echo $sección[$a][0]; ?></a></li>
<?php
}
}
?>
No entiendo por qué. Si $pag me devuelve correctamente "index.php", ¿cuál es el problema por el que no puedo verificar si $pag es igual a $sección[$a][1]?. Y por otro lado, no entiendo lo del separador al principio, pero debe ser por eso mismo.
bueno si la funcion pagina actual es la misma que tienes en el primer post, pues por suspuestoq ue no va a funcionar porque tienes que usar return no echo.
Es verdad, tenía que usar un return. Disculpen mi ignorancia en algunas cosas y muchas gracias por ayudarme :D