Cómo crear una plantilla para nuestra página web con PHP

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

Ejercicio

Hacer dos páginas web cuyas secciones cabecera y botonera sean cargadas con dos includes respectivamente.

Ejercicio: Plantilla con Index

Ahora los links de la botonera enlazarán con la propia página, pasándole un parámetro que será recogido y usado en un include para que cargue el contenido correspondiente.

Para realizar este ejercicio necesitaremos 3 páginas:

  • contenido1.php
  • contenido2.php
  • index.php

Nota:
Si quisiera evaluar si un fichero existe antes de cargarlo podría usar el método file_exists()

Idiomas

Perdiendo la página en la que estoy al pulsar en el botón de idioma

<?php 
	$lang = "es";
	if(isset($_REQUEST["lang"])){
		$lang = $_REQUEST["lang"];
	}
	include "langs/".$lang.".php";

	$p = "contenido1";
	if(isset($_REQUEST['p'])){
		$p = $_REQUEST['p'];
	}
?>
...
<?php include $p.".php"; ?>
…

<a href="index.php?p=contenido1">Contenido 1</a><br>
<a href="index.php?p=contenido2">Contenido 2</a>
…
<a href="index.php?lang=es">ES</a> | <a href="index.php?lang=en">EN</a>

Manteniendo la página en la que estoy

<a href="index.php?p=<?=$p ?>&lang=es">ES</a> | 
<a href="index.php?p=<?=$p ?>&lang=en">EN</a>

Recordando el idioma seleccionado en la sesión

<?php
	session_start();
	if(isset($_REQUEST["lang"])){
		$_SESSION["lang"] = $_REQUEST["lang"];
	}else if(!isset($_SESSION["lang"])){
		$_SESSION["lang"] = "es";	
	}
	include "langs/".$_SESSION["lang"].".php";

Detección del idioma del navegador

<?php
	session_start();
	if(isset($_REQUEST["lang"])){
		$_SESSION["lang"] = $_REQUEST["lang"];
	}else if(!isset($_SESSION["lang"])){
		$_SESSION['lang'] = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
	}
	if(!in_array($_SESSION['lang'], array("es", "en"))){
		$_SESSION['lang']="en";
	}
	include "langs/".$_SESSION["lang"].".php";

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.