page.tpl.php에서 항상 사용할 수있는 $ node


12

템플릿 파일 중 하나에서 $ node가 정의되지 않았다는 오류가 주기적으로 발생합니다. 노드 유형이 표시되는지 확인하는 간단한 if 조건이 있습니다. $ node를 항상 사용할 수 있다고 가정합니까, 아니면 틀렸습니까?


다른 사람들이이 질문을 사용할 수 있도록 이것을 답변으로 표시하고 싶을 수도 있습니다. :
Bart

답변:


12

page.tpl.php Drupal 7 API 에서 $ node를 반드시 정의 할 필요는 없습니다 .

$ node : 페이지와 연관된 자동으로로드 된 노드가 있고 노드 ID가 페이지 경로의 두 번째 인수 인 경우 (예 : node / 12345 및 node / 12345 / revisions) 주석 / 응답 /이 아닌 경우 노드 오브젝트 12345).


8

기본적으로 노드 페이지에서만 $ node 변수가 정의됩니다. 첫 페이지 (피드),보기 페이지, 주석 등은 그렇지 않습니다.

노드가 아닌 페이지에 $ node 변수를 정의하려면 테마 template.php 파일에서 MYTHEME_preprocess_page (& $ variables) 함수를 편집 / 작성해야합니다.

오류를 피하려면 템플릿 파일에서 $ node 변수를

if (isset($node)) {
  // do something with $node
}

아니면 완전히 제거하십시오


$ node는 page.tpl.php에서 정의 된 변수 일 수 있습니다
Bart

1
NODE 인 경우 기본적으로 그렇습니다. 그렇지 않으면 정의되지 않습니다. 당신의 사실을 바로 잡으십시오. 그리고 올바른 답을 내리지 마십시오.
iStryker

"노드 페이지에만 $ node 변수가 정의됩니다." 유효하지 않습니다.
Bart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.