21 de junio de 2013

Personalizar el error 404 en tu Joomla! 1.5 y 2.5

Este es un tema bastante recurrente. Seguro que todos nos hemos planteado alguna vez cómo cambiar el mensaje de error 404, página no encontrada, que viene por defecto con Joomla! con ese típico aspecto plano y que nada tiene ver con nuestra web (siempre contando con que nuestra plantilla no disponga de un error 404 personalizado, claro).

Desde luego, esta circunstancia es negativa para el visitante, pues probablemente dé por perdida la información que buscaba y para el administrador, que ha perdido un visitante potencial. Por lo tanto, es fácil pensar que lo recomendable es mostrar una página para el error 404 personalizada y dentro del entorno estético propio de nuestra web, pero ¿cómo hacerlo?

Bueno, tenemos una primera opción que es utilizar una extensión específica, por ejemplo, Qlue Custom 404, sin embargo, he podido encontrar y probar una solución más sencilla y rápida si cabe, una solución posible de las diversas que supongo que existirán. Pero vamos al grano. Lo que queremos lograr es que cuando se dé en nuestra web el error 404, Joomla! muestre un artículo concreto que habremos personalizado para la ocasión. Esperamos que sea de utilidad. Las fuentes de la información han sido ésta y ésta.

Para Joomla! 1.5

Nos dirigimos al archivo:

...templates/system/error.php
y lo editamos, sustituyendo el contenido por el siguiente código:
 <?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
global $mainframe;
$mainframe->redirect($this->baseurl.'/index.php?option=com_content&view=article&id=00');
?>
Cambiando el "00" por el id del artículo que hemos creado de forma personalizada para el error 404.

Para Joomla! 2.5

Igualmente nos dirigimos al archivo:
...templates/system/error.php
y lo editamos, sustituyendo el contenido por el siguiente código:
<?php
/**
 * @package    Joomla.Site
 * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
defined('_JEXEC') or die;
if (!isset($this->error))
{
 $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
 $this->debug = false;
}
$params = JFactory::getApplication()->getTemplate(true)->params;
$logo =  $params->get('logo');
$showRightColumn = 0;
$showleft = 0;
$showbottom = 0;
// get params
$color        = $params->get('templatecolor');
$navposition    = $params->get('navposition');
//get language and direction
$doc = JFactory::getDocument();
$this->language = $doc->language;
$this->direction = $doc->direction;
if (($this->error->getCode()) == '404')
{
header('Location: /index.php?option=com_content&view=article&id=00');
 exit;
}
?>
Camiando también el "00" por el id del artículo que hemos creado de forma personalizada para el error 404.

1 comentario: