Sử dụng móc cơ sở trường
Nếu mẫu này không có đánh dấu sẽ xuất giá trị trường {{mục.nội dung}}
bạn cần mã lõi xử lý các giá trị này bằng cách xác định móc nối cơ sở.
Xem ví dụ comment_theme():
/**
* Triển khai hook_theme().
*/
hàm comment_theme() {
trở lại [
...
'trường__bình luận' => [
'móc cơ sở' => 'trường',
],
];
}
Trong trường hợp này, bắt đầu tên móc chủ đề bằng móc cơ sở là chưa đủ, nó còn cần hai dấu gạch dưới: trường__raw
.
Triển khai móc chủ đề tùy chỉnh
Không được đề xuất, vì mục đích trình diễn, bạn có thể sao chép mã lõi có liên quan vào mẫu của riêng mình:
mymodule.module:
function mymodule_theme($current, $type, $theme, $path) {
trở lại [
'trường_raw' => [
'kết xuất phần tử' => 'phần tử',
],
];
}
function template_pre process_field_raw(&$variables, $hook) {
$element = $variables['element'];
$variables['items'] = [];
$delta = 0;
while (!empty($element[$delta])) {
$variables['items'][$delta]['content'] = $element[$delta];
$delta++;
}
}
Trong trường hợp này, bạn có thể chọn một tên ngẫu nhiên cho hook chủ đề, nhưng tên đó không được bắt đầu bằng cánh đồng__
.
Chuyển sang mẫu này trong trình định dạng trường tùy chỉnh:
chế độ xem chức năng công cộng (FieldItemListInterface $items, $langcode = NULL) {
$elements = parent::view($items, $langcode);
if (isset($elements['#theme'])) {
$elements['#theme'] = 'field_raw';
}
trả lại các phần tử $;
}
Và cuối cùng đặt mẫu tối thiểu trong thư mục mô-đun
mymodule/templates/field-raw.html.twig
{%- cho mục trong mục %}{{ item.content }}{% endfor -%}