2016-02-20 107 views
2

我想使用在字段中設置的分類術語值來增強頁面的標題。Drupal 8樹枝中的分類術語

所以標題是這樣的:

標題 - [分類長期價值]

要修改標題,我改寫

field--node--title--[content-type].html.twig 

到目前爲止好,獲得了節點本身和其他字段通過元素對象請求:

element['#object'].get('field_my_field').get(0) 

要ge第一個元素。

element['#object'].get('field_my_field').get(0)['target_id'] 

返回分類術語的tid。但是

element['#object'].get('field_my_field').get(0)['name'] 

返回一個空的元素。

如何檢索字段值?我無法想象這應該需要php代碼。

更新: 我想出了一個辦法,但似乎有點複雜:

由於分類術語未在#object解決,我不得不添加一個hook_preprocess:場函數準備一個變量必要的數據:

function myTheme_preprocess_field(&$variables, $hook){ 
    if ($variables['field_name'] == 'title'){ 
    $variables['my_field'] = Term::load($variables['element']['#object']->get('my_field')->get(0)->getValue()['target_id']); 
} 

字段現在可以在樹枝如下訪問:

{{ my_field.name.getValue()[0]['value'] }} 

對我來說,這似乎是很多工作,所以更直接的方法是非常感謝。

回答

1

對我來說,就像你需要設置爲頁面title.html.twig模板適當page_suffix,通過您的自定義模塊填充

+0

除了代碼從預處理移動到page_suffix之外,這與我在更新部分中提出的解決方案有什麼不同? – Denis

+0

你的解決方案可以工作,而我的接近Drupal主題設計。 – augusto

0

這應該工作!

{{ my_field.name.value }}