it-swarm-ko.tech

템플릿 파일 내에서 노드의 분류 용어 감지

콘텐츠 유형이 이벤트 인 Drupal 7 사이트가 있습니다.

5 가지 옵션 (파티, 회의, 회의 등)이있는 "이벤트 유형"이라는 분류가 있습니다.

독립형 이벤트 노드를 스타일링하기위한 node--event.tpl.php라는 템플릿이 있습니다.

템플릿 파일 내에서 주어진 이벤트 노드에 적용되는 분류 용어를 어떻게 감지 할 수 있습니까? 이벤트와 관련된 분류 용어를 기반으로 일부 프레젠테이션 논리를 변경해야합니다.

URL에서 분류를 사용하지 않으므로 이벤트 유형을 감지하는 다른 방법을 찾아야합니다. Devel은 작업 할 분류 용어의 값을 표시하지 않는 것 같습니다.

2
Randy Burgess

첫 번째 답변에서 언급했듯이 전처리 기능을 사용해야하지만 아마도 노드 템플릿에 사용할 수 있습니다.

node.tpl.php 템플릿 (및 모든 파생물)의 경우 함수는 다음과 같이 정의됩니다.

MYTHEME_preprocess_node(&$vars) {
}

테마의 template.php 파일이 나타납니다.

Drupal이이 기능을 인식하고 실행하도록 테마 레지스트리를 재설정하려면 Drupal 캐시를 지워야합니다.

함수의 $vars 인수는 이후에 tpl 파일에 나타나는 모든 템플릿 변수를 포함하는 배열입니다 ($vars['foo']는 tpl 파일에서 <?php print $foo; ?>로 활용됩니다).

여기에는 $node를 검사하고 그에 따라 후속 변수를 생성 할 수있는 기본 $node->taxonomy 개체도 포함됩니다. tpl 파일에서이를 활용할 수 있습니다.

$vars의 구성 요소를 검사하고 발견하는 가장 좋은 방법은 테마의 메시지 상자에 모든 변수를 멋지게 인쇄하는 Devel 모듈의 dpm() 함수를 사용하는 것입니다.

따라서 devel을 활성화하고 template.php에 다음을 생성하고 캐시를 지우고 노드보기를 새로 고친 다음 거기에서 작업하십시오.

MYTHEME_preprocess_node(&$vars) {
  dpm($vars);
}

Drupalcon Copenhagen의 session on Drupal preprocess functions 또는 Drupal 핸드북 페이지 에 관심이있을 수 있습니다.

2
c4rl