(Tiempo estimado: 2 - 3 minutos)

Todos conocemos la página de error 404 que muestra Joomla! por defecto y sabemos que no es lo mejor que podemos presentar en nuestro sitio web. Si utilizamos alguna plantilla de algún desarrollador ésta suele venir ya adaptada al diseño de ese template. Pero... qué pasa si queremos personalizarla más.

Vamos a ver cómo personalizar esta página de Joomla!

Página de error 404 de Joomla

Página de error 404 de Joomla

Fichero error.php

Para personalizar esta página de error 404 (u otra, como 403), vamos a buscar el fichero error.php que se encuentra en la plantilla que tengamos seleccionada.
Evidentemente, si no tiene este fichero, lo creamos.

En este fichero encontraremos diferentes códigos en función de la plantilla y del desarrollador.

Antes de nada, hacemos una copia de este fichero por si queremos volver a ponerlo.

Código en error.php de Protostar

Y sin más, nos ponemos manos a la obra (lo que vemos arriba en la imagen es parte del código que viene en el fichero error.php de la plantilla Protostar, que es la que viene por defecto en Joomla).

Paso 1

Eliminamos todo el código que haya en este fichero.

Fácil, ¿no?

Paso 2

Añadimos el siguiente código PHP, haciendo uso de la API de Joomla.

<?php
defined('_JEXEC') or die;
$app = JFactory::getApplication();
if ($this->error->getcode() == '404') {
  $app->redirect($this->baseurl.'/error-404');
}
?>

Con esto simplemente estamos diciendo que si hay un error 404 (página no encontrada) haga una redirección y nos muestre la página que tengamos creada con el alias "error-404", es decir, que vaya a www.misitio.com/error-404.

Código personalizado para error.php

Y esto... ¿Cómo lo creamos? Vamos a continuar con este tip Joomla.

Paso 3

Creamos un artículo que contenga el contenido que queramos mostrar. Esto ya a gusto de cada uno.

Paso 4

Creamos un ítem de menú y lo llamamos, por ejemplo, Error 404, y en el alias ponemos error-404

Esto último es importante. Lo que pongamos en el alias es lo que tenemos que poner en el código del paso 2. Es decir, si el alias fuera pagina-no-encontrada, entonces, el código quedaría de la siguiente manera:

<?php
defined('_JEXEC') or die;
$app = JFactory::getApplication();
if ($this->error->getcode() == '404') {
  $app->redirect($this->baseurl.'/pagina-no-encontrada');
}
?>

Paso 5

Ahora ya podemos asignar los módulos que queramos para poder añadir más valor a esta página.

Por ejemplo, si tienes newsletter y quieres poner aquí el formulario de suscripción es una buena forma de poder ganar un usuario más. Puedes poner el módulo de últimos artículos de tu blog, o el del buscador... En fin, aquí, también, a gusto de cada uno.

Si quieres, puedes ver cómo lo he implementado yo aquí te dejo una captura de pantalla:

Página de error 404 personalizada en sergiois


Espero que os haya resultado sencillo este tip para Joomla!. Cualquier comentario ya sabéis que es bienvenido.

Sobre el autor, Sergio Iglesias

Sergio Iglesias

Sergio Iglesias es formador, desarrollador y front-end del CMS Joomla!. A través de su blog y sus cursos puedes aprender a desarrollar tu propio portal web autogestionable.

 

¿Te ha gustado el artículo? ¡Suscríbete YA!

¿Necesitas un sitio web que funcione?

¿No quieres depender de nadie para gestionar tu página web?

Recibe contenido exclusivo y GRATIS mi curso sobre desarrollo de plantillas Joomla!


Me apunto ya!

Comentarios

#3 Edd 01-03-2018 00:23
Excelente artículo, muy bien explicado y detallado. Muchas gracias.
Citar
#2 sergiois 28-09-2016 09:16
Gracias Manuel!

Me alegro que te haya gustado el artículo.

Un saludo,
Citar
#1 Manuel 28-09-2016 00:48
Muy bueno tu articulo, explicas fácil el proceso en 5 pasos.

Gracias por tu trabajo.
Citar

Escribir un comentario

Puedes publicar el comentario que quieras, pero si lo considero SPAM será eliminado automáticamente.



Código de seguridad
Refescar

SergioIglesias.NET te informa que los datos de carácter personal que nos proporciones rellenando este formulario serán tratados por Sergio Iglesias Sánchez como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que te solicitamos es, únicamente, para gestionar los comentarios de este blog. La legitimación se realiza a través del consentimiento del interesado. Te informamos que los datos que nos facilitas estarán ubicados en los servidores de SiteGround (proveedor de hosting). Ver política de privacidad de Siteground. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no pueda atender tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@sergioiglesias.net así como el derecho a presentar una reclamación ante una autoridad de control. Puedes consultar la información adicional y detallada sobre Protección de Datos en mi política de privacidad.

¿Quieres tener un sitio web que funcione?

Contacta conmigo