Темизация страниц 404 и 403

Для Drupal 7:
Пример как подключить отдельный CSS файл к страницам 403 и 404:

  1. function mytheme_preprocess_html(&$vars) {
  2. $header = drupal_get_http_header();
  3. if (isset($header['status']) && ($header['status']=='403 Forbidden' || $header['status']=='404 Not Found')) {
  4. drupal_add_css('path_to_style.css'); //путь к нашему CSS файлу
  5. $vars['attributes_array']['class'][] = 'page-error'; //добавляем классы к нашим страничкам
  6. }
  7. }

Подключаем шаблон вида page--404.tpl.php

  1. function mytheme_preprocess_page(&$variables, $hook) {
  2. $status = drupal_get_http_header("status");
  3. if($status == "404 Not Found") {
  4. $variables['theme_hook_suggestions'][] = 'page__404';
  5. }
  6.  
  7. if($status == "403 Forbidden") {
  8. $variables['theme_hook_suggestions'][] = 'page__403';
  9. }
  10. }

Для Drupal 6:
Подключаем шаблон вида page-404.tpl.php

  1. function theme_preprocess_page(&$vars) {
  2. // HACK: Use custom 403 (avoiding logintoboggan collision) and 404 pages
  3. global $logintoboggan_denied;
  4. if (strpos(drupal_get_headers(), '403 Forbidden') !== FALSE && !$logintoboggan_denied) {
  5. $vars['template_files'][] = "page-403";
  6. }
  7. if (strpos(drupal_get_headers(), '404 Not Found') !== FALSE) {
  8. $vars['template_files'][] = "page-404";
  9. }
  10. }