404 오류 페이지에 대한 사용자 정의 템플릿


12

빠른 멍청한 질문입니다! page.tpl 대신 404 오류 페이지에 사용자 정의 템플릿을 사용하도록 테마를 설정하는 방법은 무엇입니까?

답변:


10

이 단계를 따르세요:

  1. 패널 모듈을 사용하여 새 페이지를 만듭니다 (빈 페이지 또는 내용을 넣습니다).

  2. admin / config / system / site-information에서 Default 404 (찾을 수 없음) 페이지를 새 페이지로 설정하십시오.

  3. 해당 페이지의 템플릿 파일을 재정의하십시오 (page--error.tpl.php)

  4. 필요하지 않은 모든 지역을 제거하고 코드를 입력하십시오


5
그리고 패널을 사용할 필요조차 없습니다. 페이지 또는 가장 간단한 "기본 페이지"노드를 처리하는 모듈도 마찬가지입니다.
Mołot

2
404를 만들려면 왜 기여 모듈이 필요합니까?
MrUpsidown

1
기본 페이지와 같은 노드를 사용하는 데 따른 문제점은 검색 결과 및 기타 컨텐츠 관련 목록에 나타나는데 이는 바람직하지 않습니다.
rooby

27

이 토론의 또 다른 솔루션은 패널이나 다른 사용자 정의 모듈없이 작동합니다.

테마 폴더 template.php에서이 코드를 찾아 작성하십시오. 교체 YOURTHEME테마의 이름으로 :

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

404가 발생할 때마다 page--404.tpl.php사용됩니다. 템플릿 파일 이름에 "__"이 아닌 "-"를 넣어야합니다.


page--404.tpl.php파일 을 방금 만든 경우 캐시를 지우십시오 .
Blake Erickson

403의 경우 $ header == '403 Forbidden'입니다.
Henry

이것은 모듈에서 작동하지 않는 것 같습니다. 모듈 폴더의 템플릿이 사용되지 않습니다. YOURMODULE_preprocess_page (& $ vars) 함수로 동일한 작업을 수행하는 방법은 무엇입니까?
Matoeil

3

페이지 (노드) 작성과 관련이없는 사용자 정의 된 404 페이지를 가지려면 customerror 모듈을 사용하십시오 .

Drupal에 404 페이지가 있으면 검색 결과 및 / 또는 조회 목록에 표시됩니다.

customerror 모듈을 사용할 때 테마 폴더에 page--customerror.tpl.php를 만들어 템플릿을 재정의 할 수 있습니다. 새 템플릿 파일을 만든 후에 캐시를 플러시해야합니다.


그것은 좋아 보이지만 리디렉션 모듈을 사용하는 사람들에게는 잘 어울리지 않는 것 같습니다. 리디렉션이 보여준 페이지를 표시하는 customerror를 얻을 수 없었습니다.
evanmcd

1
이러한 문제없이 Redirect 및 Customerror 모듈을 함께 사용합니다. 두 모듈의 설정 페이지를 살펴보면 customerror (custom error 기능 외에도)는 거친 인터페이스를 가지고 있지만 리디렉션 관리 기능이 있습니다. 리디렉션을 사용하고 있고 OP는 사용하지 않는 경우 사용자 지정 오류 리디렉션 설정을 사용하지 말고 아무런 문제가 없습니다.
alexkb

0

테마 기반에 존재할 수있는 규칙을 가정하지 않으면 결국 사용할 템플릿 파일을 어떻게 알 수 있습니까?

단계는 다음과 같습니다.

  1. 기본베이스를 만들고 원하는대로 호출하십시오.
  2. 해당 페이지를 404 응답 admin / config / system / site-information에 지정하십시오.
  3. theme_debug 모드를 사용하십시오.
  4. 검색 주소창에 바보 같은 URL을 입력하십시오.
  5. 처음 만들어진 페이지에 도착
  6. 소스와 템플릿 제안을 보면 다음과 같은 결과가 나타납니다.여기에 이미지 설명을 입력하십시오

  7. 전처리 파일이나 template.php를 수정할 필요가 없습니다.

나 자신은 도끼로 표시된 것을 선택했다. 나는 풀 프레임 그림과 뒤로 링크가있는 알몸의 것을 원했기 때문에 도끼로 표시했다.


404 오류에 대해 생성 한 기본 페이지도 이제 콘텐츠 페이지로 검색 결과에 나타납니다.
rooby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.