summary_field中的SilverStripe用户友好HTML值

时间:2016-10-05 18:57:31

标签: php silverstripe

我有一个DataObject和GridField,除其他字段外,还包含HTMLText数据类型字段。我希望在GridField中显示此内容的预览,从HTML中删除。

非理想解决方案

private static $summary_fields = array(
    'Title' => 'Title',
    'Content.Summary' => 'Content'
);

使用Content.Summary很好地从原始值中删除HTML。但是,删除了换行符,并且所有行都没有空格而相互连接。

如何删除HTML,但保留换行符(仍隐藏html
标签)?

1 个答案:

答案 0 :(得分:3)

要在摘要中保留
标签:

private static $summary_fields = array(
    'Title' => 'Title',
    'ContentSummary' => 'Content'
);

private static $casting = array(
    'ContentSummary' => 'HTMLText'
);

public function getContentSummary() {
    $content = $this->dbObject('Content');
    $value = str_replace('<br>', '__br__', $content->getValue());
    $content->setValue($value);
    return str_replace('__br__', '<br>', $content->Summary());
}