【问题标题】:Extend link field output on Drupal Twig Template在 Drupal Twig 模板上扩展链接字段输出
【发布时间】:2016-05-06 09:30:06
【问题描述】:

我正在尝试弄清楚如何使用 HTML 实体(如 »)扩展 Drupal 8 中的公共链接字段。 我的第一次尝试是该领域的预处理功能。不幸的是,我没有设法将链接的html 选项设置为true 这是我尝试过的方法

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);
    }
  }
}

这不起作用。所以我想出的唯一解决方案是在模板中手动生成一个链接。只是感觉不对。这是我的做法

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

有人知道如何更优雅地解决这个问题吗?

【问题讨论】:

    标签: drupal twig drupal-8


    【解决方案1】:

    这方面也有问题。找到以下解决方案

    $url = [
    '#title' => new FormattableMarkup('&@text;', ['@text' => t('raquo')]);
    //The rest
    ];
    

    用像 span 这样的 html 元素来做这个,所以不确定它是否能用这个。告诉我!

    【讨论】:

    • 谢谢。这行得通。仍然不确定这是否是正确的方法。但是,嘿还在学习 Drupal 8
    • @JensHeidrich 我通过查看源代码得出了这个想法。当它呈现时,它看起来是否属于 SafeMarkup 类型。如果不是所有的 HTML 都将被转义。请接受这个作为正确答案可以关闭
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2017-10-13
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多