Як додати змінну до шаблону гілочного поля?


9

На сторінці вузла я хотів би додати назву вузла до виходу поряд з іншим іншим полем (поле прикладу).

Я створив нову, field--field-example.html.twigале не можу отримати доступ до змінної заголовка вузла, оскільки вона недоступна в шаблоні поля.

Мені потрібно додати змінні в тему предобработки: themename.theme.

Як додати змінну в themename.themeі що було б відповідним записом у field--field-example.html.twig?


Використовуйте гачку_preprocess_node, щоб отримати значення з поля, яке ви хочете використовувати в шаблоні.

@IvanJaros, я оновив питання зараз.
Тейлор Тафф

Відповіді:


15

Оскільки ви запитували про передачу заголовка вузла як змінної через файл .theme, ви можете використовувати template_preprocess_field, щоб зробити щось подібне:

  function themename_preprocess_field(&$variables, $hook) {
    if ($variables['element']['#field_name'] == 'field_example') {
      $variables['node_title'] = $variables['element']['#object']->getTitle();
    }
  }

то у вашому випадку field--field-example.html.twigви можете просто використовувати {{node_title}}для відображення заголовка вузла.

Також дивіться відповідь 4k4 нижче.


Я спробував відредагувати вашу відповідь, щоб вона включила відповідь, надану 4k4, як вона є правильною, але мою редакцію відхилено, оскільки вона вважалася не актуальною
Тейлор Тафф

@TaylorTaff хто схвалює зміни? Я ніколи цього не бачив. Спробуємо редагувати, щоб включити відповідь нижче.
Janey

@Janey багато користувачів, які мають достатньо значків, можуть переглянути такі зміни. Я додав у закладки ваші відповіді для подальшого перегляду. Ще одне питання: Ви впевнені, що $variables['element']['#object']->getTitle();це доступно для пошуку preprocess_field? Тому що це насправді відповість на моє запитання тут: drupal.stackexchange.com/questions/197497/…
nilsun

11

У змінних шаблону поля є об'єкт вузла, тому функція попередньої обробки вам не потрібна.

Щоб отримати заголовок від вузла в шаблоні поля:

{{ element['#object'].label }}

Це дає відповідь на питання, але як інша відповідь Джейні буде кориснішою, я додав її до цієї відповіді і позначив як прийняту.
Тейлор Тафф

1
Але ваше запитання було неправильним припущенням: "але я не в змозі отримати доступ до змінної заголовка вузла, оскільки вона недоступна в шаблоні поля".
4к4

Так 4k4, ви праві, моє запитання було невірним.
Тейлор Тафф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.