Drupal 8 双字段 HTML
Drupal 8 Double Field HTML
我正在使用 Drupal 8 和 Double Field 模块。我希望第二个字段允许 HTML 标签,但目前标签直接作为文本输出在页面上。没有无法转义 HTML 标签的字段格式。
在这个模块的问题中,the author suggests "overriding theme_double_field()",但我不知道该怎么做。
如何为双字段的第二个字段启用 HTML 标签?
似乎有 support in the works,但补丁尚未准备好包含在模块中。您的最佳选择可能有助于完成补丁工作。
默认情况下,twig 模板中的所有字符串都会被转义。这就是您丢失格式的原因。您可以通过两种方式避免这种情况:
- 在预处理函数中使用
FormattableMarkup
将可格式化的字符串变量传递给您的 twig 模板。
- 在 Twig 模板中使用
raw
过滤器。
Double Field
提供了几种格式化程序,但假设您使用最简单的 Unformatted list
格式化程序,它使用 double_field_item
主题来呈现双字段项。
然后第一个解决方案是为double_field_item
主题编写自己的预处理函数:
use Drupal\Component\Render\FormattableMarkup;
function mytheme_preprocess_double_field_item(&$variables) {
$item = $variables['elements']['#item'];
$second_value = new FormattableMarkup($item->second, []);
$variables['item']['second'] = $second_value;
}
另一种解决方案是覆盖主题中的 double-field-item.html.twig
模板:
{% for subfield, subitem in item %}
{% if subitem %}
<div class="double-field-{{ subfield }}">
{% if settings[subfield].prefix %}
<span class="double-field-prefix">{{ settings[subfield].prefix }}</span>
{% endif %}
{{ subitem|raw }}
{% if settings[subfield].suffix %}
<span class="double-field-suffix">{{ settings[subfield].suffix }}</span>
{% endif %}
</div>
{% endif %}
{% endfor %}
任意选择:)
我正在使用 Drupal 8 和 Double Field 模块。我希望第二个字段允许 HTML 标签,但目前标签直接作为文本输出在页面上。没有无法转义 HTML 标签的字段格式。
在这个模块的问题中,the author suggests "overriding theme_double_field()",但我不知道该怎么做。
如何为双字段的第二个字段启用 HTML 标签?
似乎有 support in the works,但补丁尚未准备好包含在模块中。您的最佳选择可能有助于完成补丁工作。
默认情况下,twig 模板中的所有字符串都会被转义。这就是您丢失格式的原因。您可以通过两种方式避免这种情况:
- 在预处理函数中使用
FormattableMarkup
将可格式化的字符串变量传递给您的 twig 模板。 - 在 Twig 模板中使用
raw
过滤器。
Double Field
提供了几种格式化程序,但假设您使用最简单的 Unformatted list
格式化程序,它使用 double_field_item
主题来呈现双字段项。
然后第一个解决方案是为double_field_item
主题编写自己的预处理函数:
use Drupal\Component\Render\FormattableMarkup;
function mytheme_preprocess_double_field_item(&$variables) {
$item = $variables['elements']['#item'];
$second_value = new FormattableMarkup($item->second, []);
$variables['item']['second'] = $second_value;
}
另一种解决方案是覆盖主题中的 double-field-item.html.twig
模板:
{% for subfield, subitem in item %}
{% if subitem %}
<div class="double-field-{{ subfield }}">
{% if settings[subfield].prefix %}
<span class="double-field-prefix">{{ settings[subfield].prefix }}</span>
{% endif %}
{{ subitem|raw }}
{% if settings[subfield].suffix %}
<span class="double-field-suffix">{{ settings[subfield].suffix }}</span>
{% endif %}
</div>
{% endif %}
{% endfor %}
任意选择:)