19'C 흐림
서울 강남구
htmlpurifier가 공식적으로 html5를 지원하지 않아 태그 허용할 경우 지원하지 않는 태그라고 오류를 출력합니다.
조만간 html5를 지원하겠지만, 현재는 아래처럼 설정해서 video 태그를 포함한 html5 태그를 정의하고 사용할 수 있도록 해주시면 됩니다.
html5 태그를 일일이 지정해 주면 다 사용할 수 있겠지만, 여기서는 미디어 관련 태그만 이야기 드립니다.
※ 아미나빌더 1.4.7 버전 기준으로 /lib/common.lib.php 파일의 html_purifier() 함수 내의 내용을 아래처럼 변경해 줍니다.
596라인부터 교체한다고 생각하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | $config ->set( 'HTML.SafeEmbed' , true); $config ->set( 'HTML.SafeObject' , true); $config ->set( 'Output.FlashCompat' , true); $config ->set( 'HTML.SafeIframe' , true); $config ->set( 'URI.SafeIframeRegexp' , '%^(https?:)?//(' . $safeiframe . ')%' ); $config ->set( 'Attr.AllowedFrameTargets' , array ( '_blank' )); // HTML5 properties $config ->set( 'HTML.DefinitionID' , 'html5-definitions' ); $config ->set( 'HTML.DefinitionRev' , 1); if ( $def = $config ->maybeGetRawHTMLDefinition()) { $def ->addElement( 'figure' , 'Block' , 'Optional: (figcaption, Flow) | (Flow, figcaption) | Flow' , 'Common' ); $def ->addElement( 'figcaption' , 'Inline' , 'Flow' , 'Common' ); $def ->addElement( 'video' , 'Block' , 'Optional: (source, Flow) | (Flow, source) | Flow' , 'Common' , array ( 'src' => 'URI' , 'type' => 'Text' , 'width' => 'Length' , 'height' => 'Length' , 'poster' => 'URI' , 'preload' => 'Enum#auto,metadata,none' , 'controls' => 'Bool' , )); $def ->addElement( 'source' , 'Block' , 'Flow' , 'Common' , array ( 'src' => 'URI' , 'type' => 'Text' , )); $def ->addAttribute( 'iframe' , 'allowfullscreen' , 'Bool' ); } //여기까지 $purifier = new HTMLPurifier( $config ); |
이렇게 수정해 주시면 iframe, video, embed, object, figure 등 다 글내용에서 사용이 가능합니다.