Làm cách nào để ghi đè mẫu trường?


7

Tôi đang cố gắng ghi đè một mẫu trường bằng mẫu của riêng tôi. Trường được gọi là field_test, vì vậy tôi đã tạo một trường - trường thử nghiệm - mynodetype.html.twig tệp mẫu `trong thư mục gốc / thư mục / mẫu /, nhưng Drupal không nhận ra nó.

Tôi đã xóa bộ nhớ cache khỏi giao diện người dùng, bật chế độ gỡ lỗi trong settings.yaml, cài đặt mô-đun Devel và tạo lại sổ đăng ký chủ đề cho mỗi yêu cầu, nhưng dường như không có gì giúp được. Trường luôn được hiển thị với mẫu field.html.twig mặc định.

Làm cách nào để ghi đè mẫu trường mà Drupal sử dụng?


1
Chỉ cho hậu thế bạn đã thử field--field_test--mynodetype.html.twig? (gạch dưới tên trường)
Clive

Bạn đã sử dụng đầu ra gỡ lỗi twig (nhận xét HTML) để tìm ra tên mẫu? Tôi đang thấy một đề xuất mẫu trông giống như field--node--field-image--article.html.twig(lưu ý 'nút' có thể bị thiếu từ tên mẫu của bạn).
Cottser

Một số tài liệu cho điều đó có ở đây: drupal.org/node/2358785 nếu điều đó hiệu quả với bạn, tôi có thể đăng nó dưới dạng câu trả lời.
Cottser

1
@TiMESPLiNTER - tuyệt vời. Tôi sẽ đảm bảo một vấn đề được tạo ra để sửa các tài liệu đó.
Cottser

1
Đây là vấn đề tôi đã hứa để sửa tài liệu trong trường.html.twig: drupal.org/node/2394553
Cottser

Câu trả lời:


14

Bạn cần chỉ định loại thực thể (nút, taxonomy_term, ...) trong đề xuất tên mẫu như bạn đã chỉ định, tức là trường - nút - trường-test.html.twig.

nút là loại thực thể và kiểm tra trường là tên trường.

Nếu bạn muốn biết mẫu nào đang tạo một yếu tố đánh dấu cụ thể, bạn có thể sử dụng tùy chọn gỡ lỗi của Twig. Bạn kích hoạt gỡ lỗi Twig trong các trang web / default / services.yml; thiết lập giá trị của debugtrong twig.configđể true.

Tôi đã thêm trường field_test vào các nút Article và tôi đã nhận được các đề xuất mẫu trong nguồn HTML .

<!-- FILE NAME SUGGESTIONS:
   * field--node--field-test--article.html.twig
   * field--node--field-test.html.twig
   * field--node--article.html.twig
   * field--field-test.html.twig
   * field--string.html.twig
   x field.html.twig
-->

Sau khi nhận được gợi ý, tôi đã tạo một tệp mẫu và giữ nó trong thư mục mẫu của chủ đề.

Nhớ xóa bộ nhớ cache.

Xem Làm việc với các mẫu Twig để biết thêm thông tin.


3

Các mẫu phải được đặt trong thư mục 'mẫu' trong chủ đề của bạn. Họ sẽ không được chọn trong thư mục gốc của chủ đề của bạn. Xem https://www.drupal.org/node/2349804#temsheet (mà tôi vừa cập nhật để lưu ý sự khác biệt từ hành vi của Drupal 7).


Điểm hay, nhưng xin lỗi mà quên đề cập rằng tôi đã đặt chúng vào một thư mục được gọi templates. Tôi có nghĩa là mẫu khác ghi đè công việc. Vì vậy, tôi đã ghi đè mặc định node.html.twighoạt động tốt. Nhưng tôi không thể ghi đè các trường.
TiMESPLiNTER
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.