노드 '티저'보기 모드에 대한 템플릿 제안은 무엇입니까?


37

node-[type | nodeid] .tpl.php 는 노드의 기본보기 모드를 대상으로합니다. 그러나 티저보기 모드의 템플릿을 재정의하고 싶습니다.

'teaser'보기 모드에 대한 템플릿 제안 (.tpl.php 파일)은 무엇입니까?

답변:


57

기본적으로 하나는 없다고 생각하지만 template.php 파일에 쉽게 추가 할 수 있습니다.

function MYTHEME_preprocess_node(&$vars) {
  if($vars['view_mode'] == 'teaser') {
    $vars['theme_hook_suggestions'][] = 'node__' . $vars['node']->type . '__teaser';   
    $vars['theme_hook_suggestions'][] = 'node__' . $vars['node']->nid . '__teaser';
  }
}

그러면 다음과 같은 템플릿 파일을 사용할 수 있습니다. node--[type|nodeid]--teaser.tpl.php


3
노드 객체를 참조하지 않고 배열에서 변수를 바로 가져올 수도 있습니다.
shaneonabike

1

엔티티보기 모드 모듈을 통해이를 수행하는 더 쉬운 방법이 있습니다.

https://www.drupal.org/project/entity_view_mode

The Drupal 7 successor to Build modes which will allow administrators to 
define custom view modes for entities. Custom entities are added to the 
entity registry via hook_entity_info_alter() so they are available to any code
that uses entity_get_info() to provide a list of view modes for an entity. 
This includes node and user reference fields, Views, etc.

It also ensures consistency for template suggestions for all entity types, 
so that you can use any of the template patterns, in order of most specific 
to least specific:

entity-type__id__view-mode
entity-type__id
entity-type__bundle__view-mode
entity-type__bundle
entity-type

1

"티저"보기 모드에 대한 템플릿 제안은 다음과 같습니다.

node--[type]--teaser.tpl.php

기본적으로 "티저"보기 모드는 일반 node.tpl.php템플릿을 사용하므로 해당 파일을 복사하여 시작할 수 있습니다.

https://www.drupal.org/node/223440#theme-debugtheme_debug 모드 를 켜면 모든 템플릿 제안을 볼 수 있습니다

소스: 페이지에서 Drupal이 고려한 전체 템플릿 제안 목록을 보여주는 HTML 주석이 표시됩니다.


0

Clive의 솔루션이 맞습니다. 그러나 기본 제안 후에 새 제안을 평가하려면 배열의 마지막 위치에 제안을 추가해야합니다.

function MYTHEME_preprocess_node(&$vars) {
  if($vars['view_mode'] == 'teaser') {
    array_unshift($vars['theme_hook_suggestions'], 'node__' . $vars['node']->type . '__teaser');
    array_unshift($vars['theme_hook_suggestions'], 'node__' . $vars['node']->nid . '__teaser');
  }
}

이런 식으로 티저 노드가 node-[type] .tpl.php node- [type]-teaser.tpl.php와 일치 (및 존재하는 경우 사용)하는 것을 피하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.