Jak uzyskać nazwę typu treści czytelną dla człowieka w szablonie węzła

14

Utworzyłem szablon węzła dla mojego węzła i działa dobrze.

Muszę wydrukować nazwę typu zawartości, która jest jak „Biała księga” i ma nazwę maszyny „w1” w moim szablonie węzła. Jeśli użyję zmiennej {{ node.bundle }}, to wypisze nazwę maszyny. Ale potrzebuję ludzkiego imienia .

Próbowałem wielu elementów zmiennych węzłów, treści i stron, ale nie jestem w stanie wydrukować nazwy typu treści czytelnej dla człowieka.

Czy ktoś może pomóc?

Dev
źródło

Odpowiedzi:

23

Powinieneś być w stanie uzyskać czytelną dla człowieka nazwę typu zawartości (lub „etykiety”) za pomocą następującego fragmentu w szablonie Twig węzła.

{{ node.type.entity.label }} 
edwardchiapet
źródło
2
tak, to jest najłatwiejsze rozwiązanie, nie
przyszło
2
Próbowałem {{node.label}}, który zamiast tego zwracał nazwę maszyny, {{node.type.entity.label}} spełnił mój cel, dzięki :)
Dev
4

Możesz dodać czytelną dla człowieka nazwę typu zawartości w haczyku przetwarzania wstępnego:

mytheme.theme

/**
 * Implements hook_preprocess_node().
 */
function mytheme_preprocess_node(array &$variables) {
  $node = $variables['node'];
  $variables['content_type'] = node_type_load($node->bundle())->label();
}

i użyj go w szablonie węzła:

{{ content_type }}
4k4
źródło
1
Dla samego rekordu node_type_load jest przestarzały, powinieneś zamiast tego użyć NodeType :: load ().
Insasse