Что такое шаблонное предложение для режима просмотра «тизер» узла?

node - [type | nodeid] .tpl.php цели в режиме просмотра по умолчанию узла. Однако я хочу переопределить шаблон для режима просмотра тизера.

Что такое предложение шаблона (файл .tpl.php) для режима просмотра тизера?

34 голоса | спросил gilzero 10 PMpTue, 10 Apr 2012 18:54:58 +040054Tuesday 2012, 18:54:58

4 ответа


52

Я не думаю, что по умолчанию есть один, но вы можете легко добавить его в файл template.php:

функция 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

ответил Clive 10 PMpTue, 10 Apr 2012 19:17:04 +040017Tuesday 2012, 19:17:04
1

Решение Клайва верное. Но если вы хотите, чтобы новые предложения были оценены после предложений по умолчанию, вы должны добавить их в последние позиции массива:

функция 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');
  }
}

Таким образом, вы избегаете того, что ваш тизер-узел соответствует (и использует, если он существует) узел - [type] .tpl.php перед узлом - [type] - teaser.tpl.php

ответил giucas 20 MaramFri, 20 Mar 2015 01:45:52 +03002015-03-20T01:45:52+03:0001 2015, 01:45:52
0

Существует более простой путь к этому, через модуль режимов представления Entity.

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

Преемник Drupal 7 для создания режимов, который позволит администраторам
определять настраиваемые режимы просмотра для объектов. Пользовательские объекты добавляются в
реестр объектов через hook_entity_info_alter (), чтобы они были доступны для любого кода
который использует entity_get_info () для предоставления списка режимов просмотра для объекта.
Это включает в себя поля ссылок узлов и пользователей, представления и т. Д.

Он также обеспечивает согласованность предложений шаблонов для всех типов сущностей,
так что вы можете использовать любые шаблоны шаблонов в порядке
к наименее конкретным:

сущность-type__id__view режим
сущность-type__id
сущность-type__bundle__view режим
сущность-type__bundle
тип объекта
ответил fnandogp 20 MaramFri, 20 Mar 2015 04:28:51 +03002015-03-20T04:28:51+03:0004 2015, 04:28:51
0

Предложение шаблона для режима просмотра «тизер»:

узел - [тип] - teaser.tpl.php

По умолчанию режим просмотра «тизер» использует обычный шаблон node.tpl.php, поэтому вы можете скопировать этот файл для начала работы.

Вы можете просмотреть все предложения шаблонов, включив режим theme_debug, https://www.drupal.org/node/223440#theme-debug

Когда вы view-source: на странице, вы должны увидеть комментарии HTML, в которых показан весь список предложений шаблонов, рассмотренных Drupal.

ответил zapo 12 J000000Tuesday16 2016, 23:12:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132