Điểm:1

Chức năng chủ đề tùy chỉnh cho một Trường

lá cờ in

Tôi muốn thay đổi móc nối chủ đề cho một trường từ FieldFormatter tùy chỉnh. Gọi lại #theme là 'trường' nhưng tôi muốn cung cấp cho người dùng tùy chọn để chuyển cài đặt thay đổi cài đặt này thành 'field_raw', sau đó sử dụng mẫu Twig không có đánh dấu. Tôi không thể tìm ra hook chủ đề.

Mẫu cành cây:

{%- cho mục trong mục %}{{ item.content }}{% endfor -%}

Móc mô-đun:

function mymodule_theme($current, $type, $theme, $path) {
  trở lại [
    'trường_raw' => [
      'mặt hàng' => NULL,
    ],
  ];
}

Tôi không chắc phải chuyển cái gì ở đây để đưa nó vào mẫu twig. Tôi có thể xuất văn bản trong mẫu để tôi biết nó đang bị tấn công. Các biến phù hợp để đặt ở đây để mẫu nhận được nó là gì?

Tôi cũng đã thử:

'kết xuất phần tử' => 'phần tử'
'kết xuất phần tử' => 'phần tử'
'phần tử kết xuất' => 'trẻ em'
Điểm:1
lá cờ cn

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 -%}

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.