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

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

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

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

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

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

Лучший ответ

Аватар пользователя engenes engenes 17 июля 2019 в 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 июля 2019 в 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'];
}
?>

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