我正在使用默认情况下自动生成的标准Content
字段来添加一些文字。
"Content" => "HTMLText"
如果我使用限制功能,例如
$Content.BigSummary(300)
这限制了单词,但没有保留换行符。 Aka剥离了HTML。
查看框架代码,有ContextSummary()
public function ContextSummary($characters = 500, $string = false, $striphtml = true, $highlight = true,
$prefix = "... ", $suffix = "...")
但是经过测试,在HTMLText字段上使用它似乎不起作用,它限制了字符,但除非字段类型为Text
,否则它不会保留HTML,例如
的htmlText:
$Content.ContextSummary(200, false, false)
- 正在删除HTML
文字:
$Content.ContextSummary(200, false, false)
- 保留HTML(这就是我想要的)
我做错了吗?或者我可以使用另一种功能来实现我想要的功能吗?或者创建一个自定义函数?
答案 0 :(得分:0)
问题在于转换为简单文字并返回到html - < br>标签丢失,因为我遇到过一次。这是我用过的类似黑客。
// override ContextSummary from the Page_Controller
public function ContextSummary($field = 'Content', $characters = 500, $string = false) {
$content = $this->dbObject($field);
$content->setValue(str_replace('<br>', '__br__', $content->getValue);
$summary = $content->ContextSummary($characters, $string, $stripHtml = false);
return str_replace('__br__', '<br>', $summary);
}
and use $ContextSummary(Content) instead of $Content.ContextSummary in template