Làm thế nào để bạn chỉ định một giá trị trong Twig?

Danh sách chính (đang tiến hành) về cách lấy các phần của trường để sử dụng trong các mẫu Twig. Tôi luôn phải tra cứu những thứ này, vì vậy tôi nghĩ mình sẽ băm chúng ra và viết ra giấy

CẬP NHẬT. 28/03/2018 bổ sung thêm trường, sửa lỗi, sắp xếp lại nội dung

CẬP NHẬT. Ngày 16 tháng 1 năm 2020 để thêm loại trường Liên kết

GHI CHÚ. Những kỹ thuật này chỉ được thử nghiệm trong các mẫu node.html.twig

nội dung

  1. Cơ thể người
  2. Chữ
  3. Danh sách
  4. liên kết
  5. Hình ảnh
  6. Tài liệu
  7. Boolean
  8. Con số
  9. E-mail
  10. Điện thoại
  11. Ngày
  12. Phân loại/tham chiếu thực thể
  13. Nhãn cho bất kỳ loại trường nào
  14. Đa giá trị cho bất kỳ loại trường nào
  15. ví dụ
  16. Khái niệm/Bối cảnh

Tóm tắt, làm thế nào để sử dụng hướng dẫn này

Giao diện người dùng quản trị Manage Display có thể thay đổi cách hiển thị nhãn và nội dung của trường. Khi tôi muốn chỉ ra cách chỉ xuất phiên bản Quản lý hiển thị của nội dung, tôi sử dụng từ 'hiển thị'. Khi tôi đang nói về phiên bản thô hơn của nội dung, tôi sử dụng 'giá trị'

Tôi đã sử dụng field_name cho tên máy giữ chỗ cho từng trường. Thay thế nó bằng tên máy của trường của bạn. Bạn có thể tìm thấy tên máy của các trường trong Quản lý trường của loại nội dung của bạn

Để chỉ hiển thị nhãn. cuộn xuống mục #12

01. Cơ thể người

Trường nội dung mặc định trên loại nội dung về cơ bản là loại trường Văn bản (được định dạng, dài, có tóm tắt)

Nội dung (hiển thị). {{ content.body.0 }} Điều này sẽ hiển thị mọi thứ được thiết lập trong Quản lý hiển thị. Nếu trường nội dung được đặt thành Tóm tắt hoặc Cắt bớt, điều này sẽ cho thấy rằng

Nội dung (giá trị, định dạng). {{ node.body.value|raw }} Điều này hiển thị nội dung của chính trường văn bản, bất kể những gì được đặt trong Quản lý hiển thị. Điều này sẽ phân tích cú pháp bất kỳ HTML nào. Ghi chú. tôi hiểu rằng bộ lọc Cành cây raw có thể gây ra các vấn đề về bảo mật, nhưng tôi chưa tìm ra cách nào khác để thực hiện việc này. Tìm hiểu thêm về bộ lọc thô Twig

Nội dung (giá trị, HTML chưa phân tích cú pháp). {{ node.body.0.value }} Hiển thị giá trị rất thô của trường, bao gồm cả HTML chưa được phân tích cú pháp

Nội dung (giá trị, văn bản thuần túy). {{ node.body.0.value|striptags }} Như trên, nhưng sẽ loại bỏ HTML, như thể nó là văn bản thuần túy

Bản tóm tắt.

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
0

Bạn muốn đọc câu chuyện này sau?

02. Chữ

Rất giống với Body, nhưng tại sao không đặt nó ở đây để bạn dễ tìm hơn?

Văn bản (đơn giản) và Văn bản (đơn giản, dài)

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
1

Nội dung (giá trị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
2

Văn bản (được định dạng), Văn bản (được định dạng, dài), Văn bản (được định dạng, dài, có tóm tắt)

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3 Một lần nữa, phần này hiển thị mọi thứ được thiết lập trong Quản lý hiển thị, có thể là Mặc định hoặc Đã cắt

Nội dung (giá trị, định dạng).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
4

Nội dung (giá trị, chưa phân tích cú pháp).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
5 Hiển thị giá trị rất thô của trường, bao gồm cả HTML chưa được phân tích cú pháp

Nội dung (giá trị, văn bản thuần túy).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
6

Bản tóm tắt.

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
7

03. Danh sách

Danh sách (float), Danh sách (số nguyên), Danh sách (văn bản)

Đây là những trường có khóa và nhãn. Chìa khóa là những gì được lưu trữ dưới dạng giá trị. Nhớ nhãn ở đây không có nghĩa là nhãn trường, mà là nhãn của khóa

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3 Nếu Màn hình được đặt thành Phím, nó sẽ hiển thị phím. Nếu nó được đặt thành Nhãn, nó sẽ hiển thị nhãn

Nội dung (nhãn). Tôi chưa tìm ra cách kéo nhãn giống như cách kéo chìa khóa. Vì vậy, bạn có thể muốn thực hiện việc này bằng cách thay đổi Quản lý hiển thị thành Nhãn

Nội dung (chính).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
5

Chúng sẽ hiển thị mục đầu tiên trong trường. Đối với các trường đa giá trị, bạn có thể hiển thị một mục khác bằng cách thay đổi

{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
0 thành một số khác. Hãy nhớ bắt đầu đếm từ
{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
0;

Để hiển thị tất cả các mục, hãy xem phần Đa giá trị #13

04. liên kết

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
1

Nếu đó là trường đa giá trị, thì ví dụ trên sẽ xuất ra tất cả chúng, chính xác như được định cấu hình trong màn hình Quản lý. Để chỉ lấy một giá trị theo cách này, hãy thêm một chỉ mục như thế này.

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

chỉ liên kết.

{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
5

Chỉ văn bản liên kết.

{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
6

Chúng sẽ hiển thị mục đầu tiên trong trường. Đối với các trường đa giá trị, bạn có thể hiển thị một mục khác bằng cách thay đổi

{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
0 thành một số khác. Hãy nhớ bắt đầu đếm từ
{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
0;

05. Hình ảnh

Nội dung (hiển thị - hình ảnh).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (đường dẫn hình ảnh)
node.html.twig1

văn bản thay thế. node.html.twig2

Tiêu đề văn bản. node.html.twig3

Chiều cao chiều rộng
node.html.twig4 hoặc node.html.twig5

06. Tập tin

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (đường dẫn tệp)
node.html.twig1

Sự miêu tả. node.html.twig8

07. Boolean

Điều này hoạt động rất giống với Danh sách, nhưng phím hoạt động hơi khác một chút. Đối với các trường boolean, khóa là

{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
0 (không được chọn) hoặc
{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
2 (được chọn)

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (chính).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
5

Để hiển thị tất cả các mục, hãy xem phần Đa giá trị #13

08. Con số

Số (thập phân) và Số (float)

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (giá trị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
5 Điều này sẽ xóa mọi tiền tố/hậu tố

Để hiển thị tất cả các mục, hãy xem phần Đa giá trị #13

09. E-mail

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (giá trị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
5 Phần này hiển thị email văn bản thuần túy

Để hiển thị tất cả các mục, hãy xem phần Đa giá trị #13

10. Điện thoại

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (giá trị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
5

Để hiển thị tất cả các mục, hãy xem phần Đa giá trị #13

11. Ngày

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (giá trị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
5 Điều này sẽ đưa ra tất cả thông tin ngày tháng thường là gì đó này. {{ content.body.0 }}1

Để hiển thị tất cả các mục, hãy xem phần Đa giá trị #13

12. Tham chiếu phân loại/thực thể

Tôi chưa tìm hiểu kỹ về loại trường này, nhưng ít nhất đây là tài liệu tham khảo về thuật ngữ Phân loại

Nội dung (hiển thị).

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
3

Nội dung (giá trị). {{ content.body.0 }}3 Phần này hiển thị id thẻ, là một số

Nội dung (tiêu đề thuật ngữ). {{ content.body.0 }}4

Nội dung (đường dẫn hạn). {{ content.body.0 }}5

13. Nhãn cho bất kỳ loại trường nào

{{ content.body.0 }}6

14. Đa giá trị cho bất kỳ loại trường nào

Khi một trường cho phép nhiều giá trị, đây là cách in chúng ra trong mẫu nút có nhiều quyền kiểm soát đối với HTML

Tại đây, {{ content.body.0 }}7 hiển thị toàn bộ nội dung trường như được định cấu hình trong Quản lý Hiển thị. Đây là cách nó hoạt động cho một {{ content.body.0 }}8

{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item }}

  • {% endfor %}

{% endif %}

Bạn có thể kết hợp kỹ thuật đa giá trị này với các kỹ thuật trên

15. ví dụ

ví dụ 1. tạo một {{ content.body.0 }}9 trong số các khóa trường Danh sách

{% if content.field_name[0] %}

    {% for key, item in node.field_name if key|first != '#' %}
  • {{ item.value }}

  • {% endfor %}

{% endif %}
  1. Để có được toàn bộ trường, tôi sẽ sử dụng
    {% if content.field_name[0] %}

      {% for key, item in node.field_name if key|first != '#' %}
    • {{ item.value }}

    • {% endfor %}

    {% endif %}
    1 vì vậy tôi muốn kiểm tra xem có ít nhất một giá trị với {{ node.body.value|raw }}1 không
  2. Để lấy một khóa duy nhất, tôi sẽ sử dụng
    {% if content.field_name[0] %}

      {% for key, item in node.field_name if key|first != '#' %}
    • {{ item.value }}

    • {% endfor %}

    {% endif %}
    5, vì vậy tôi sẽ sử dụng {{ node.body.value|raw }}3 khi tôi lấy {{ node.body.value|raw }}4 từ

ví dụ 2. lấy tên của các thẻ trong một {{ content.body.0 }}9

{% if content.field_name[0] %}

    {% for key, item in content.field_name if key|first != '#' %}
  • {{ item['#title'] }}

  • {% endfor %}

{% endif %}
  1. Để có được toàn bộ trường, tôi sẽ sử dụng
    {% if content.field_name[0] %}

      {% for key, item in node.field_name if key|first != '#' %}
    • {{ item.value }}

    • {% endfor %}

    {% endif %}
    1, vì vậy tôi kiểm tra xem liệu có giá trị bằng {{ node.body.value|raw }}7 không
  2. Để có được một tiêu đề thẻ duy nhất, tôi sẽ sử dụng {{ content.body.0 }}4, vì vậy tôi sử dụng phần đầu tiên trong phần {{ node.body.value|raw }}9. raw0tên
  3. {% if content.field_name[0] %}

      {% for key, item in content.field_name if key|first != '#' %}
    • {{ item['#title'] }}

    • {% endfor %}

    {% endif %}
    0 đại diện cho bất kỳ mục nào trong danh sách, vì vậy tôi có thể thay thế mục đó và mọi thứ trước nó bằng {{ node.body.value|raw }}4 và tìm kiếm raw3
16. Các khái niệm

Chú ý khi sử dụng raw4 và raw5 ở trên. Trong một mẫu nút như raw6, biến raw4 đang xem xét các tùy chọn được chọn trong Quản lý hiển thị cho loại nội dung đó. Tôi thích làm nhiều thứ trong giao diện người dùng nhất có thể, nhưng đôi khi chúng tôi cần lấy các phần của trường trước khi chúng bị thay đổi bởi các cài đặt đó

Đó là khi chúng ta bước vào raw5 để đạt được điều mình muốn. Nhiều thông tin 'thô' hơn được lưu trữ phía trên hoặc trước Màn hình

Đây là một biểu đồ ngớ ngẩn để chứng minh dòng chảy đó

  1. Người dùng thêm thông tin vào biểu mẫu
  2. Điều này thêm rất nhiều mẩu dữ liệu rời rạc vào nơi nút được lưu trữ
  3. Sau đó, Drupal 8 và Manage Display kết hợp dữ liệu đó và hiển thị dữ liệu đó trong một đoạn nhỏ được định dạng sẵn. Đó là raw4, bạn sẽ
  4. Nhưng. Với raw5 hoặc đôi khi là {{ node.body.0.value }}1 hoặc những thứ khác, chúng tôi có thể bỏ qua Quản lý hiển thị và hiển thị mọi thứ chi tiết hơn

Một biểu đồ minh họa hành trình Cảnh trên thuyền Wonka của một thứ gì đó được nhập vào dạng nút, cách Drupal sử dụng nó và cách bạn có thể bỏ qua

Thêm từ tạp chí

Có nhiều người sáng tạo Da đen đang làm những công việc đáng kinh ngạc trong lĩnh vực Công nghệ. Bộ sưu tập tài nguyên này chiếu sáng một số người trong chúng ta