우선 여기다 글 쓰는게 죄송합니다..
사이트 하나 더 만드려고 하는데.. 이번엔 옆동네꺼로 만들어 볼 생각인데요..
아무리 그쪽 게시판에 글을 남겨도 알려주는 이 하나 없더라구요..
그래서 어쩔수 없이.. 여기 옆동네 소스도 만질줄 아시는 분들이 계신걸로 알고
문의글 남겨봅니다... 도움좀 부탁드려요ㅠㅠ
---------------
iframe 태그가 안 먹힙니다..
제가 직접 하면 태그가 먹히는데
rss 리더기... 즉 rss로 되어 있는 것을 그냥 가져올땐 iframe 태그가 전혀 먹히지 않습니다..
고수님들 도움좀 부탁드립니다..
보안상으로 막아서 rss 리더기로 안되는것인지요...?
혹시 이것을 없애는 방법은 없는지 해서요..
대충 소스를 보니..
<iframe src="<a href="http://www.url.com">http://www.url.com</a> width="100%" height="220" type="application/x-shockwave-flash" allowfullscreen="true" allowfullscreen="1" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe>
이렇게 링크를 걸어버리네요...;; 아니면 html 소스가 적용이 안되는것인지요....
xe에서 제공하는 rss 리더소스를 보면 (최신버전 GG님꺼)
// 최종 업데이트 일 이후에 작성된 글을 대상 게시판에 추가
foreach(array_reverse($items,true) as $item)
{
if ($last_updatedate > $item->get_date('U') )
continue;
$obj = null;
$obj->title = htmlspecialchars_decode($item->get_title());
// item link 를 가져오지 못할 경우 불가피하게 RSS 주소 사용
if($item->get_link())
$link = $item->get_link();
$obj->content = $item->get_description();
$obj->module_srl = $rssboard->module_srl;
$obj->member_srl = $this->admin_info->member_srl;
$obj->user_id = $this->admin_info->user_id;
$obj->user_name = $this->admin_info->user_name;
$obj->nick_name = $this->admin_info->nick_name;
$obj->email_address = $this->admin_info->email_address;
$obj->regdate = $item->get_date('YmdHis');
$obj->category_srl = $rssboard->category_srl;
$obj->allow_comment = 'Y';
$output=$oDocumentController->insertDocument($obj,true);
}
// 최종 업데이트 시간 저장
$args = null;
$args->updatetime = $updatetime;
$args->rssboard_srl = $rssboard->rssboard_srl;
$output = executeQuery('rssboard.updateRssboardDate',$args);
}
위 빨간색 부분이 문제 같은데 도저히 초보라 모르겠습니다...
html 적용되게 하려면 어떻게 해야 하나요...
고수님들의 도움좀 부탁드립니다...
답변 2개 / 댓글 6개
rss로 가져오는 경우는 해당글의 html옵션값을 넣어줘보세요.
일반텍스트로 인식해서 도메인이 들어가면 자동링크 걸리고 html태그는 변환되서 나오는듯 싶습니다.
저도 자세히는 모르겠으나.. 뭔지 모르시겠다면
$obj->allow_comment = 'Y';
이거 아래에
$obj->use_html = 'Y';
추가해보세요.
답변에 대한 댓글 6개
소스를 보신건가요 개발자도구에서 보신건가요? 저 경우는 소스를 보셔야 정확할듯합니다.
<iframe 이렇게 되있는게 아닐지..
XE 자체에서 iframe을 거르는 기능이 있는지는 알지 못하겠고.. 일일이 뒤져보자니 좀;;
역시 디테일은 옆동네에서 질문하시는게 나을듯 싶어요.. ^^;
그누보드4와 5 모두 iframe은 본문에서 허용되지 않는 코드입니다.
다만 그누보드5의 경우에는 plugin/htmlpurifier/safeiframe.txt 에서 허용할 도메인을 넣어주면 태그적용이 정상적으로 되는걸로 알고있습니다. 기본값으로 유투브와 비메오, 다음비디오와 네이버관련이 들어있군요.
RSS를 뿌리는 그누보드의 버전이 4라면.. 특별히 예외처리를 만드셔야 할듯하네요..
common.lib.php의 conv_content()함수에서 html사용일경우 맨 마지막 bad_tag_convert()를 호출합니다. 그러니 conv_content()함수에서 기본값이 false인 인자를 추가해 그 부분을 패스할 수 있도록 처리해줘야 할겁니다.
function conv_content($content, $html, $bad_tag_pass=false) {}
if(!$bad_tag_pass) $content = bad_tag_convert($content);
이런식으로요.
그러고나서 rss.php에서 conv_content($row[wr_content], $html, true) 이렇게 호출하면 될듯합니다.
답변남겼다가 잘못이해한듯 싶어서 지웠네요..
사이트 유알엘 알려주시면 확인해 드릴게요~
답변을 작성하려면 로그인이 필요합니다.