страница 404

Аватар пользователя relogger relogger 1 августа 2008 в 10:26

Подскажите пожалуйста как настроить страницу 404, нужно изменить отображение страницы.
403 отображается нормально с боковым меню, а вот 404 на шаблоне только с шапкой. Как сделать отображение 404 страницы в рамках обычного шаблона?

Комментарии

Аватар пользователя EllECTRONC EllECTRONC 1 августа 2008 в 20:20

Создайте страницу какую хотите, обзовите 404 или как угодно, и в настройках сайта укажите ее URL для 404, там же и 403 и т.п.

Аватар пользователя relogger relogger 2 августа 2008 в 10:10

Спасибо, перепробовал всё, но шаблон для страницы всё равно подставляет без боковых колонок.

Аватар пользователя andyceo andyceo 2 августа 2008 в 14:39

Да, эта проблема имеет место быть, тоже не знаю, как решить.

Пробовал установить модуль CustomError но 404 страница всё равно отображается некорректно.

Использую: Drupal 5.9

Аватар пользователя relogger relogger 2 августа 2008 в 20:46

видел где-то статейку про изменение шаблона для служебных страниц, но не разобрался в шаблоне, теперь не могу найти где видел.

Аватар пользователя relogger relogger 2 августа 2008 в 20:50

Вот здесь вроде бы
includes/theme.inc
надо настроить отображение страничек.
Помогите кто знает.

function theme_maintenance_page($content, $messages = TRUE, $partial = FALSE) {
  drupal_set_header('Content-Type: text/html; charset=utf-8');
  drupal_set_html_head('<style type="text/css" media="all">import "'. base_path() .'misc/maintenance.css";</style>');
  drupal_set_html_head('<style type="text/css" media="all">import "'. base_path() . drupal_get_path('module', 'system') .'/defaults.css";</style>');
  drupal_set_html_head('<style type="text/css" media="all">import "'. base_path() . drupal_get_path('module', 'system') .'/system.css";</style>');
  drupal_set_html_head('<link rel="shortcut icon" href="'. base_path() .'misc/favicon.ico" type="image/x-icon" />');

  $output = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
  $output .= '<html xmlns="http://www.w3.org/1999/xhtml">';
  $output .= '<head>';
  $output .= ' <title>'. strip_tags(drupal_get_title()) .'</title>';
  $output .= drupal_get_html_head();
  $output .= drupal_get_js();
  $output .= '</head>';
  $output .= '<body>';
  $output .= '<h1>' . drupal_get_title() . '</h1>';

  if ($messages) {
    $output .= theme('status_messages');
  }

  $output .= "\n<!-- begin content -->\n";
  $output .= $content;
  $output .= "\n<!-- end content -->\n";

  if (!$partial) {
    $output .= '</body></html>';
  }

  return $output;
}

Аватар пользователя relogger relogger 2 августа 2008 в 21:12

в общем решение уже найдено.
Вот это надо вставить в /themes/garland/template.php
В самый конец файла

function garland_page($content, $show_blocks = TRUE) {

  // Set additional conditions to change $show_blocks if you want here..
  // The following will always set $show_blocks to TRUE.
  $show_blocks = $show_blocks ? $show_blocks : TRUE;

  // phptemplate_page is what gets called usually but the
  // theme function allows us to override it with the themes' name.
  // We're calling it directly here so we don't have to copy tons of code.
  return phptemplate_page($content, $show_blocks);
}

Аватар пользователя relogger relogger 2 августа 2008 в 21:14

ну или в папку своей темы, и тогда изменить function garland_page на function Ваша тема_page

Аватар пользователя yozh yozh 24 октября 2008 в 20:06

вот этот кусочек кода просто по-индийски написан или в нем есть тайный тантрический смысл?

"relogger" wrote:
function garland_page($content, $show_blocks = TRUE) {
$show_blocks = $show_blocks ? $show_blocks : TRUE;