2015-11-11 39 views
5

Próbuję utworzyć własny formater pól graficznych. Postępowałem zgodnie z tymi instrukcjami (http://www.sitepoint.com/creating-custom-field-formatters-drupal-8/), a teraz mam działający formater, który w zasadzie nie robi niczego poza "dziedziczeniem" i wykonuje domyślny formatujący obraz.Jak uzyskać adres URL obrazu z URI w szablonie Drupal 8

Następnie oczywiście mam własny szablon, który jest również kopią domyślnego szablonu image-formatter.html.twig (znajduje się w pliku core \ modules \ image \ templates).

Moje pytanie dotyczy tego, że w szablonie mogę wydrukować cały obraz za pomocą składni Twig {{image}}. Jeśli używam zrzutu (obrazu), widzę, że w rzeczywistości jest taki obraz: public: // default_images/Domyślny obraz dla zadania Drupal Ant.jpg

Chciałbym mieć rzeczywisty adres URL, ale teraz nie mam pomysł, jak go zdobyć. Czy to możliwe? Byłbym też wdzięczny, gdybyś mógł mi krótko wyjaśnić, dlaczego {{image}} drukuje obraz za pomocą znaczników img? Musi przejść przez inny formatator?

Dlaczego zacząłem to robić w pierwszej kolejności było to, że zamiast tagów img chciałbym użyć divs ze stylem tła.

Odpowiedz

8

Jest to rozszerzenie gałązka file_url można użyć do tego np

{{ file_url(content.field_image['#items'].entity.uri.value) }} 
+0

To było dokładnie to, czego szukasz! Pracował świetnie. Oczywiście należy zastąpić field_image nazwą ich pola obrazu. – daniels

+0

To samo dotyczy pracy z gałązką mojego węzła, ale nie działa w przypadku szablonów widoków – Pradeep