2016-05-06 5 views
1

Ich versuche herauszufinden, wie man ein gemeinsames Link-Feld in Drupal 8 mit einer HTML-Entität (wie ») erweitern kann. Mein erster Versuch war eine Vorverarbeitungsfunktion für das Feld. Leider habe ich nicht die html Möglichkeit, den Link zu true Hier zu setzen verwalten, wie ich es versuchtLink-Feld-Ausgabe auf Drupal Twig Template erweitern

function MYTHEME_preprocess_field(&$variables) { 
    if ($variables['element']['#field_name'] == 'field_slideshow_link'){ 
    foreach ($variables['items'] as $idx => $item) { 
     $variables['items'][$idx]['content']['#title'] = $variables['items'][$idx]['content']['#title'] . " <span>&raquo;</span>"; 
     $variables['items'][$idx]['content']['#url']->setOption('html', true); 
    } 
    } 
} 

Dies funktionierte nicht. Die einzige Lösung, die ich gefunden habe, war das manuelle Generieren eines Links in der Vorlage. Mit nur fühlt sich nicht richtig an. Hier ist, wie ich es tat

<a href="{{ node.field_slideshow_link.0.url }}">{{ node.field_slideshow_link.0.title }} <span>&raquo;</span></a> 

Hat jemand eine Idee, wie Sie dieses Problem eleganter lösen?

Antwort

0

Hatte auch damit Probleme. Gefunden die folgende Lösung:

Hat dies mit HTML-Elementen wie span so nicht sicher, ob es mit diesem funktioniert. Gib mir Bescheid!

+0

Danke. Das funktioniert. Immer noch nicht sicher, ob es der richtige Weg ist, dies zu tun. Aber hey immer noch lernen Drupal 8 –

+0

@JensHeidrich Ich kam auf die Idee, indem ich in den Quellcode sah. Wenn es gerendert wird, sieht es aus, wenn es vom SafeMarkup-Typ ist. Wenn es nicht alles ist, wird HTML maskiert. Bitte akzeptieren Sie dies als richtige Antwort auf diese kann geschlossen werden – VJamie