PowerCMSでのsanitizeモディファイアの動き
sanitizeモディファイアという、指定の許可されたHTMLタグ以外を除去してくれるタグが有る。
https://www.powercms.jp/products/document/config-directives/globalsanitizespec.html
なお、許可するHTMLタグの指定は、CMS環境変数GlobalSanitizeSpecで指定できる。
https://www.powercms.jp/products/document/config-directives/globalsanitizespec.html
気になったのは、許可したタグで属性値が保持されるか。次の施行を実施。
GlobalSanitizeSpecを次の様に設定した上で、
GlobalSanitizeSpec a href,b,i,br/,p,strong,em,ul,ol,li,blockquote,pre,span
記事の編集画面の本文をHTML直接編集モードにして、次の様に記載。
<p>てすと<span class="hoge">テスト</hoge></p> <div>divがsanitizeされてるかテスト</div>
その上で、これを出力するMTEntryBody タグにsanitizeモディファイアを指定。
<mrt:entrybody sanitize="1" />
結果、出力されたHTMLは次の通りだった。
<p>てすと<span>テスト</span></p> divがsanitizeされてるかテスト
spanタグのclass属性の指定が消えとる。。(´Д`)多分MTの時代からそのまま引き継いだ仕様だとは思うけど、属性値は残してほしい。。
(追記)勘違いしていて、次のように「span class」と指定すればclass属性を残すことが出来た。
GlobalSanitizeSpec a href,b,i,br/,p,strong,em,ul,ol,li,blockquote,pre,span class
記載例の中に「a href」とあるので、そこで気づいた。分かりにくい~