2

SmartyブロックのHTMLタグを削除するにはどうすればよいですか?ブロック内で
試しましたが、機能しませんでした。 また、プラグインを書いてみました。しかし、どうすればブロックの内容を文字列変数に解析できますか?{strip}

4

2 に答える 2

2

ブロックは実際には別の{strip}ことを行います-マークアップから空白を取り除くだけです。

簡単なブロックプラグインを書くことができます:

function smarty_block_sanitize($parms, $content, &$smarty, &$repeat ) {
    if( $repeat ) {
        return( strip_tags( $content ) );
    }
}

テンプレートを表示する前に呼び出されるPHPファイルのどこかにこれを置きます。テンプレートで使用するには、次のようにします。

Sample text {sanitize}<more markup>test</more markup>{/sanitize}  End text.

onclick / onmouseover /その他の邪悪な属性はフィルタリングされないため、strip_tags(PHPパラメーターを含む)でタグを許可することに注意してください。

于 2012-06-20T16:20:40.063 に答える
0

{capture}変数をブロックして、PHPを使用することができますstrip_tags()

{capture name="withtags"}
    <em>Text</em> with <strong>tags</strong>
{/capture}
{$smarty.capture.withtags|strip_tags}
于 2014-03-18T02:52:09.573 に答える