Использование крюка для полевой базы
Если этот шаблон без разметки должен выводить значения полей {{элемент.содержимое}}
вам нужен основной код, обрабатывающий эти значения, определяя базовый хук.
См. например comment_theme():
/**
* Реализует hook_theme().
*/
функция comment_theme () {
возвращаться [
...
'поле__комментарий' => [
'базовый крючок' => 'поле',
],
];
}
В этом случае недостаточно начать имя хука темы с базового хука, ему также нужны двойные символы подчеркивания: field__raw
.
Реализация пользовательского хука темы
Не рекомендуется, для демонстрационных целей вы можете скопировать соответствующий код ядра в свой собственный шаблон:
мой модуль.модуль:
функция mymodule_theme ($ существующая, $ тип, $ тема, $ путь) {
возвращаться [
'поле_raw' => [
'рендерить элемент' => 'элемент',
],
];
}
функция template_preprocess_field_raw(&$variables, $hook) {
$элемент = $переменные['элемент'];
$переменные['элементы'] = [];
$дельта = 0;
в то время как (! пусто ($ элемент [$ дельта])) {
$variables['items'][$delta]['content'] = $element[$delta];
$дельта++;
}
}
В этом случае вы можете выбрать произвольное имя для хука темы, но оно не должно начинаться с поле__
.
Переключитесь на этот шаблон в средстве форматирования настраиваемых полей:
просмотр общедоступной функции (FieldItemListInterface $items, $langcode = NULL) {
$elements = parent::view($items, $langcode);
если (isset($elements['#theme'])) {
$elements['#theme'] = 'field_raw';
}
вернуть $элементы;
}
И, наконец, поместите минимальный шаблон в папку модуля.
мой модуль/шаблоны/поле-raw.html.twig
{%- для элемента в элементах %}{{ item.content }}{% endfor -%}