20 Febrero 2014 clcanela
3186 2

Crear un TPL para plantilla de página de Error 404 en Drupal 7


3186 2

Hace algunos proyectos tuve la necesidad de hacer una plantilla (page.tpl) para un sitio de Drupal donde era necesario usar un diseño más atractivo que el recuadro de The requested page "/" could not be found que por default nos muestra Drupal cuando un usuario entra a un link que no existe en el sitio.

Para lograr lo anterior existe una forma de hacer un TPL que se mostrará en caso de que un visitante intente ingresar a una página que no existe. Lo anterior se logra mediante dos pasos: Identificar el header con error 404 y agregar un hook a los template suggestions con el nombre que querramos tener.

function nuestrotema_preprocess_page(&$vars) {    
  $status = drupal_get_http_header("status");  
  if($status == "404 Not Found") {      
    $vars['theme_hook_suggestions'][] = 'page__404';
  }
}

Como podemos observar, el hook es bastante sencillo. Éste código se debe ingresar en el archivo template.php que se encuentra en el directorio raíz de nuestro template (no el de Drupal, si no en la ruta habiltual de sites/all/themes/nuestrotema ). La variable $vars que recibe éste método ya viene referenciada de la variable global que utiliza Drupal al momento de procesar cada página, por lo que es importante asegurarnos que en la declaración del método nuestrotema_preprocess_page() recibamos éste parámetro de forma referenciada (es decir, con el signo de & antecediendo a la variable).

No olviden cambiar el prefijo del nombre de la función con el nombre de su theme (nuestrotema debe cambiarse por el nombre de su theme)

Una vez que actualizamos nuestro template.php con éste hook, ya podemos crear en nuestro theme el archivo page--404.tpl.php y poner en él el contenido html que querramos mostrar en caso de un link incorrecto a nuestro sitio. Si desean que el archivo tpl.php se llame de otra forma, basta cambiar la asignación de la variable en la línea 4 por el nombre que gusten, siguiendo el formato estándar de Drupal, donde el guión bajo (_) se convierte en guión medio(-)

¡Felices Sentencias!

Quizá te interesen
Recibirás notificaciones de las respuestas a tu comentario y obtendrémos tu avatar de Gravatar.com Tu correo no será publicado

Mariana23 Septiembre 2015

Hola! gracias por la ayuda!
estaba buscando el nombre del TPL pero no encontraba el específico para el error 404, muchas gracias y espero publiquen más contenido de Drupal!

Recibirás notificaciones de las respuestas a tu comentario y obtendrémos tu avatar de Gravatar.com Tu correo no será publicado

clcanela23 Septiembre 2015

Hola Mariana! qué bien que te pudimos ayudar con éste tip de Drupal, y claro! de hecho estamos a unas horas de renovar el sitio y con ello agregar nuevo contenido también!

Saludos!

Recibirás notificaciones de las respuestas a tu comentario y obtendrémos tu avatar de Gravatar.com Tu correo no será publicado