CustomError permite al administrador del sitio crear páginas de error personalizadas 404 (no encontrado), y 403 (acceso denegado), sin la necesidad de crear nodos específicos para ellas.
Entre sus características, destacan:
- Que podemos configurar el título de cada página y sus descripciones.
- Podemos incluir cualquier texto con formato HTML y fragmentos de código PHP.
- Para los errores 403 la página de destino puede ser recuperada tras el inicio de sesión.
Bien configurado, Custom Error aumenta la usabilidad de nuestro sitio y ofrece alternativas útiles a los usuarios que reciben errores 403 y 404. Aparte, no se rompe la estructura habitual de nuestro tema, por lo que el usuario seguirá teniendo acceso a los menús y los bloques.
Todo esto está muy bien, pero ¿Cómo configurar Custom Error?
En primer lugar accedemos la página de informe de errores por defecto de Drupal "/admin/settings/error-reporting" y establecemos el valor predeterminado de los campos de página de error como "customerror/403" y "customerror/404", respectivamente.
Esto le dice a Drupal que va ser Custom Error el que gestiones estos errores a partir de ahora.
Lo siguiente es ir a la página de configuración de Custom Error "/admin/settings/customerror"
En el apartado de configuración de errores 403:
Configuramos el título como "Acceso denegado" o algo similar.
En el textarea de descripción pegamos este código
<div>
<?php global $user; ?>
<?php if ($user->uid): ?>
<p>Disculpa <?php print $user->name; ?>, pero no tienes permiso para ver la página a la que intentas acceder.</p>
<p>Si crees que este mensaje es un error, por favor, <a href="contact">ponte en contacto con nosotros</a>, especificando detalladamente el error.</p>
<p>Gracias</p>
<?php else: ?>
<p>Esta página sólo se muestra a clientes y usuarios registrados. Por favor, elije una de las siguientes opciones para continuar.</p>
<ul>
<li><a href="/user/login?<?php print drupal_get_destination(); ?>">Acceder</a> con tu cuenta de usuario</li>
<li><a href="busqueda">Buscar</a> contenido relacionado</li>
<li>Ir a <a href="/">inicio</a></li>
</ul>
<?php //print drupal_get_form('user_login'); ?>
<?php endif; ?>
</div>
y marcamos la opción "Allow PHP code to be executed for 403"
En el apartado de configuración de errores 404:
Configuramos el título como "Acceso denegado" o algo similar.
En el textarea de descripción pegamos este código
<div>
<p>Perdón, no hay contenido en esta página - es posible que hayas introducido mal la dirección.</p>
<p>Puedes usar el formulario de búsqueda (abajo) o ir a la página de <a href="/">inicio</a>.</p>
<?php
if (module_exists('search') && user_access('search content')) {
$path = $_REQUEST['q'];
$keys = strtolower(preg_replace('/[^a-zA-Z0-9-]+/', ' ', $path));
print drupal_get_form('search_form', NULL, $keys, 'node', 'Introduce tu búsqueda');
}
?>
</div>
y marcamos también la opción "Allow PHP code to be executed for 404"
Espero haberme explicado bien y que a alguno le evite los quebraderos de cabeza que yo tuve que pasar.