Как создать шаблон для поля в конкретном типе материала для отдельного отражения?

Аватар пользователя engenes engenes 17 июля в 20:53

Есть материал портфолио portfolio
У него есть отражения map_objekt
Мне нужно создать отдельный шаблон для этого отражения в материале портфолио.
надо чтобы получилось что то вроде того

field--field-photowork--portfolio--map_objekt.tpl.php

но Drupal без дополнительного кода такое не умеет

Пожалуйста помогите решить задачу, может быть кто то знает, какой код прописать чтобы подключить этот файл?

0 Thanks

Лучший ответ

Аватар пользователя engenes engenes 17 июля в 21:23

ну вот есть типы материалов.
Для них шаблоны полей переопределяются вот так:
fiels--моеполе--мойтипматериала.tpl.php

У материалов есть дисплеи (отражения)
teaser, default, full, собственное...

мне нужно переопределить шаблон поля для отдельного типа материала для конкретного дисплея например анонса (teaser)

в этом случае логично назвать шаблон как то так:
fiels--моеполе--teaser--мойтипматериала.tpl.php но не срабатывает шаблон не подключается

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

<?php
function моятема_preprocess_field(&$variables$hook) {
    
$variables['theme_hook_suggestions'][] = 'field__' $variables['element']['#field_name'] . '__' $variables['element']['#view_mode']. '__' $variables['element']['#bundle'];
}
?>

правда не знал как решить несколько раз с этим сталкивался, а тут задал вопрос и хук нашелся)

Комментарии

Аватар пользователя engenes engenes 17 июля в 21:23

ну вот есть типы материалов.
Для них шаблоны полей переопределяются вот так:
fiels--моеполе--мойтипматериала.tpl.php

У материалов есть дисплеи (отражения)
teaser, default, full, собственное...

мне нужно переопределить шаблон поля для отдельного типа материала для конкретного дисплея например анонса (teaser)

в этом случае логично назвать шаблон как то так:
fiels--моеполе--teaser--мойтипматериала.tpl.php но не срабатывает шаблон не подключается

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

<?php
function моятема_preprocess_field(&$variables$hook) {
    
$variables['theme_hook_suggestions'][] = 'field__' $variables['element']['#field_name'] . '__' $variables['element']['#view_mode']. '__' $variables['element']['#bundle'];
}
?>

правда не знал как решить несколько раз с этим сталкивался, а тут задал вопрос и хук нашелся)