htmlpurifier가 공식적으로 html5를 지원하지 않아 태그 허용할 경우 지원하지 않는 태그라고 오류를 출력합니다.
조만간 html5를 지원하겠지만, 현재는 아래처럼 설정해서 video 태그를 포함한 html5 태그를 정의하고 사용할 수 있도록 해주시면 됩니다.
html5 태그를 일일이 지정해 주면 다 사용할 수 있겠지만, 여기서는 미디어 관련 태그만 이야기 드립니다.
※ 아미나빌더 1.4.7 버전 기준으로 /lib/common.lib.php 파일의 html_purifier() 함수 내의 내용을 아래처럼 변경해 줍니다.
$config->set('Attr.AllowedFrameTargets', array('_blank'));
$purifier = new HTMLPurifier($config);
return $purifier->purify($html);
위 부분을 찾아서 $purifier 윗줄에 아래 코드를 작성해주세요.
이렇게 수정해 주시면 iframe, video, embed, object, figure 등 다 글내용에서 사용이 가능합니다.
596라인부터 교체한다고 생각하시면 됩니다.
// 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');
}
//여기까지