web-gelistirme-sc.com

Düğüm 'teaser' görüntüleme modu için şablon önerisi nedir?

düğüm - [type | nodeid] .tpl.php düğümün varsayılan görünüm modunu hedefler. Ancak teaser görünüm modu için şablonu geçersiz kılmak istiyorum.

'Teaser' görüntüleme modu için şablon önerisi (.tpl.php dosyası) nedir?

37
gilzero

Varsayılan olarak bir tane olduğunu düşünmüyorum ancak template.php dosyanıza kolayca bir tane ekleyebilirsiniz:

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';
  }
}

Bu, aşağıdaki gibi bir şablon dosyası kullanmanıza izin verir: node--[type|nodeid]--teaser.tpl.php

57
Clive

"Teaser" görüntüleme modu için şablon önerisi:

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

Varsayılan olarak "teaser" görüntüleme modu normal node.tpl.php Şablonunu kullanır, böylece başlamak için o dosyayı kopyalayabilirsiniz.

Tüm şablon önerilerini theme_debug Modunu açarak görebilirsiniz, https://www.drupal.org/node/223440#theme-debug

Sayfayı görüntülediğinizde : şablon önerilerinin tam listesini gösteren HTML yorumlarını görmelisiniz Drupal düşünülen.

1
zapo

Varlık görünüm modları modülü aracılığıyla bunu yapmanın daha kolay bir yolu var.

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
fnandogp

Clive'nin çözümü doğrudur. Ancak, yeni önerilerin varsayılan önerilerden sonra değerlendirilmesini istiyorsanız, bunları dizinin son konumlarına eklemeniz gerekir:

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');
  }
}

Bu şekilde, teaser düğümünüzün node ile eşleşmesini (ve varsa kullanır) - düğümden önce [type] .tpl.php - [type] - teaser.tpl.php

0
giucas