1
Drupal 8の一般的なリンクフィールドをHTMLエンティティ(例えば»)で拡張する方法を解明しようとしています。 私の最初の試行は、フィールドの前処理機能でした。残念ながら、私はtrue
へのリンクのhtml
オプションを設定するために管理していないここで私はそれがDrupal Twigテンプレートのリンクフィールド出力を延長する
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>»</span>";
$variables['items'][$idx]['content']['#url']->setOption('html', true);
}
}
}
これは動作しませんでした試みた方法です。だから私が思いついた唯一の解決策は、テンプレート内でリンクを手動で生成することでした。ちょうどいい感じではありません。ここで私は
<a href="{{ node.field_slideshow_link.0.url }}">{{ node.field_slideshow_link.0.title }} <span>»</span></a>
それをやった方法です誰にもっとエレガントにこの問題を解決するための方法を考えていますか?
ありがとうございました。これは機能します。それが正しい方法であるかどうかまだ分かりません。しかし、ちょっとまだDrupalを学んで8 –
@JensHeidrich私はソースコードを見てアイデアに来た。それがレンダリングされるとき、SafeMarkupタイプのものかどうかを調べます。そうでない場合、すべてのHTMLがエスケープされます。これを正解としてこれを受け入れるようにしてください – VJamie