我觉得这应该很简单,但这让我发疯。
我为所有“身体”元素选择了“纯文本”。我不希望任何人在填写表格时都可以放入任何HTML。
但是,我确实希望保留换行符。在普通的配置页面上,确实存在一个“选中此框以将换行符转换为br和p的功能,但是无论我检查还是重新排列过滤器的权重,我都无法获得它来保存换行符。
什么是正确的配置才能使它起作用,以便我可以在文本中保留退货?
我觉得这应该很简单,但这让我发疯。
我为所有“身体”元素选择了“纯文本”。我不希望任何人在填写表格时都可以放入任何HTML。
但是,我确实希望保留换行符。在普通的配置页面上,确实存在一个“选中此框以将换行符转换为br和p的功能,但是无论我检查还是重新排列过滤器的权重,我都无法获得它来保存换行符。
什么是正确的配置才能使它起作用,以便我可以在文本中保留退货?
Answers:
看起来像Drupal核心中的错误 http://drupal.org/node/1019042
这似乎是一个Drupal 7.x错误。在我的情况下,更改过滤器的顺序不起作用。
我的短期解决方案是将其放入主题的template.php(ref)中:
<?php
/**
* Implements template_preprocess_field().
*/
function THEMENAME_preprocess_field(&$vars, $hook) {
// Add line breaks to plain text textareas.
if (
// Make sure this is a text_long field type.
$vars['element']['#field_type'] == 'text_long'
// Check that the field's format is set to null, which equates to plain_text.
&& $vars['element']['#items'][0]['format'] == null
) {
$vars['items'][0]['#markup'] = nl2br($vars['items'][0]['#markup']);
}
}
?>
对于视图中的字段,需要在字段设置的“重写结果”部分中单独设置此选项。
实际上,它应该使用“ admin / config / content / formats / plain_text”中的此过滤器顺序设置
通过删除“将任何HTML显示为纯文本”来尝试以下过滤器:
我使用了高级文本格式化程序模块来快速解决此问题,而无需编写代码。
点击右侧的齿轮(或指向格式设置的链接)
我认为这不是输入过滤:可能是字段的显示设置。如果将其设置为“纯文本”,请将其更改为“默认”。否则,将在显示该字段之前剥离为输入换行符生成的标签。
为了清楚起见,在相关内容类型的“管理显示”面板上。在管理»结构»内容类型»MyContentType»管理显示。在字段的格式列下。
这个很棒的模块可以帮助您 https://drupal.org/project/wysiwyg_linebreaks
所见即所得Linebreaks允许所见即所得编辑器的用户使用其换行符而不是
<p>
and<br />
标签来保存并打开其网站中的标记。