2012-06-20 4 views
2

Smarty 블록에서 HTML 태그를 제거하려면 어떻게해야합니까?
블록 내에 {strip}을 시도했지만 작동하지 않았습니다.
또한 플러그인을 작성하려고했습니다. 그러나 어떻게 블록의 내용을 문자열 변수로 파싱 할 수 있습니까?Smarty의 블록에서 HTML 태그 제거

답변

2

블록 {strip} 블록은 실제로 다른 작업을 수행합니다. 즉, 마크 업에서 공백을 제거합니다.

당신은 간단한 블록 플러그인을 작성할 수

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

템플릿을 표시하기 전에라는 PHP 파일에이 곳을 넣습니다. 템플릿을 사용하려면 다음을 수행하십시오 온 클릭 /가 onMouseover와/기타 악한 속성이 필터링되지 않기 때문에

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

은 (는 PHP 매개 변수) strip_tags와 태그를 허용 조심하십시오.

0

당신 {capture} 변수에 블록을 할 수있는 다음 PHP의 strip_tags() 거기에 사용

{capture name="withtags"} 
    <em>Text</em> with <strong>tags</strong> 
{/capture} 
{$smarty.capture.withtags|strip_tags}