htmlpurifier에서 프로알라에디터가 충돌이 있어서 질문을
본문
검색을 많이해봤는데 워낙에 쓰시는분들도 없다보니
답변얻기가 좀 어려울거 같지만 혹시나 하고 여쭤봅니다
1.영상을 올리게되면 프로알라 에디터에서 자동으로 붙는 클래스는 => fr-video fr-dvb fr-draggable 입니다
ps. fr-video 나 fr-dvb는 영상크기 조절하는 클래스로 설정되어있어요
2.htmlpurifier에서 비디오태그 허용을 한후 video를 올리고 글을 다 쓴 상태에서
<p> <---단락--->
<span class="fr-video fr-dvb fr-draggable">
<video class="fr-draggable" controls="" src="/data/froala/23.09/영상이름.mp4"></video>
</span>
</p><---단락--->
이런식으로 나와야하는게 정상적인 출력인데요
에디터에서 글을 쓰고 있는 상태에선 위에처럼 나오지만
정작 글이 업로드 된후에는
<p><span class="fr-video fr-dvb fr-draggable"></span></p>
<video class="fr-draggable" controls="" src="/data/froala/23.09/영상이름.mp4"></video>
위 내용처럼 비디오태그가 클래스안에?(혹은 P태그안에?) 못들어가고 튕겨져 나와요 ( 영상은 잘 출력이 됩니다만..클래스가 붙질 않아서 크기제어가 안되고 전체화면으로 나오는중 )
htmlpurifier에서 video는 허용이 되는데 fr-video fr-dvb fr-draggable 이런 에디터 클래스가 허용이 안되는가도 생각을 해봤지만
이미지나 유튜브 글들이 쓰여질때는 제대로 fr-클래스가 붙어서 나와요
htmlpurifier에서 해본건
1. $config->set('HTML.AllowedElements', 'p, a, ul, ol, li, h1, h2, h3, h4, h5, h6, br, strong, em, b, i');
// 지정해서 추가해보기
2. $config->set('HTML.Allowed', 'span[name|id|class]');
// span 허용해보기
3. $def->addAttribute('span', 'class*', new HTMLPurifier_AttrDef_Enum(
array('allowed')
));
// video정의 쪽에 추가 해보기
기본적으로 위에처럼 해봤고 화이트리스트로 해보는건 여러문제가 동반한다고 해서 엄두를 못냈어요
htrmlpurifier에서 id를 지정해놓는다라는건 메뉴얼을보니깐 후속문제는 책임 못진다고 써있길래 그 또한 시도를 못했구요.
질문)
1.htmlpurifier에서 하는게 설정하는게 맞는건지...
2.아니면 htmlpurifier에서 비디오태그만 통과시키고
view페이지에서 비디오태그를 검색해서 클래스를 직접 붙여줘야하는지...방향을 아에 못잡고 있어서..
조언을 혹시 얻을수 있을까 하고 글을 적어봅니다~
!-->!-->!-->답변 1
클래스 설정에서 처리하는 게 좋은 방법이라고 생각합니다. 또한 비디오 태그를 허용하고 싶다면, HTMLPurifier 설정에서 비디오 태그를 허용하도록 구성하면 되구요.
또한 다음 과 같이 설정하면 span
태그 안에 있는 클래스 이름이 HTMLPurifier에 의해 제거되지 않고 유지됩니다.
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', 'span[class]');
만약 비디오 태그를 사용하고 싶다면, 태그를 추가로 허용할 수 도있습니다
$config->set('HTML.Allowed', 'span[class], video[src|controls]');
도움이 되셔길 바라며 항상 느림의 미학으로 찬찬히 화이팅!~응원할께요