私はデフォルトで自動的に生成される標準Content
フィールドを使用しています。文字を制限することはできますが、改行/書式は保持しますか?
"Content" => "HTMLText"
私は例えば
$Content.BigSummary(300)
制限機能を使用する場合、これは言葉を制限するが、改行を保持しません。 AkaはHTMLを取り除きます。フレームワークのコードを探し
は、動作するようには思えないのhtmlTextフィールドでこれを使用して、テスト時にしかしContextSummary()
public function ContextSummary($characters = 500, $string = false, $striphtml = true, $highlight = true,
$prefix = "... ", $suffix = "...")
、そこにある、それは文字を制限するが、それがない限り、HTMLを保持しません。 -
まだHTMLを取り除き$Content.ContextSummary(200, false, false)
:フィールドタイプはText
例えば
のhtmlTextです
テキスト:
$Content.ContextSummary(200, false, false)
- (私が欲しいものである)HTMLを保持します
私が何か間違ったことをやっていますか?または、私が望むものを達成するために使用できる別の機能がありますか?または、カスタム関数を作成しますか?
「ContextSummary」の両方で文字数を制限し、HTMLを保持できるため、閉じるタグを返さないことでタグが非常に簡単に破損する可能性があるので、これは奇妙な状況です。 '
'改行があっても、あなたは '...怠惰な犬 b'を返す危険性がありますし、DOMを破る –
これを行うには、単語数で独自のメソッドを実装できるかもしれません。最後の単語の後に終了タグをフィルタリングしないようにする(ネストされたHTMLを含む!) –
Robbieからの応答は正確ではないようです。 ContextSummary()メソッドはHTMLTextTest(SS 3.5.1の310行目)をハッキングしただけで、マークアップを含む文字列を考慮しているように見え、マークアップされていない文字もカウントされます。 これはOPの問題点を説明するものではありませんが、今私が完全に理解していないことを考慮に入れたキャストもあります。 ($ casting arrayをTextとHTMLTextの両方で参照してください) – theruss