옆동네 소스... 도움좀 부탁드립니다.. iframe이 안먹혀서요..

옆동네 소스... 도움좀 부탁드립니다.. iframe이 안먹혀서요..

QA

옆동네 소스... 도움좀 부탁드립니다.. iframe이 안먹혀서요..

본문

우선 여기다 글 쓰는게 죄송합니다..

 

사이트 하나 더 만드려고 하는데.. 이번엔 옆동네꺼로 만들어 볼 생각인데요..

 

아무리 그쪽 게시판에 글을 남겨도 알려주는 이 하나 없더라구요..

 

그래서 어쩔수 없이.. 여기 옆동네 소스도 만질줄 아시는 분들이 계신걸로 알고

 

문의글 남겨봅니다... 도움좀 부탁드려요ㅠㅠ

 

---------------

 

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

rss로 가져오는 경우는 해당글의 html옵션값을 넣어줘보세요.

일반텍스트로 인식해서 도메인이 들어가면 자동링크 걸리고 html태그는 변환되서 나오는듯 싶습니다.

 

저도 자세히는 모르겠으나.. 뭔지 모르시겠다면

$obj->allow_comment = 'Y'; 

이거 아래에

$obj->use_html = 'Y'; 

추가해보세요.

보니까 하이퍼 링크는 제거 했는데요.. 보니까 .. iframe을 " 따옴표로 감싸놯더라구요.. "<iframe 이런식으로요.. 혹시 따옴표 제거는 할수 없을까요?..

훔.. 태그 앞에 따옴표가 들어갔다고 iframe 태그가 안먹히는건 아닐거 같은데요.. 다른 처리가 있었던건 아닐지..
소스를 보신건가요 개발자도구에서 보신건가요? 저 경우는 소스를 보셔야 정확할듯합니다.
&lt;iframe 이렇게 되있는게 아닐지..
XE 자체에서 iframe을 거르는 기능이 있는지는 알지 못하겠고.. 일일이 뒤져보자니 좀;;
역시 디테일은 옆동네에서 질문하시는게 나을듯 싶어요.. ^^;

다시 질문 남기러 왔는데 먼지손님이 정확하게 말씀해주셨네요 ㅠㅠ 보니까 RSS에서 &lt;iframe 이렇게 처리되어 있더라구요.. 그누보드 RSS문제 였는것 같은데...

흠? RSS는 그누보드에서 뿌리는건가요?
그누보드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) 이렇게 호출하면 될듯합니다.

와우 대박!!!!! 진심!! 최곱니다^^ 몇날 며칠 골머리 아파하던 것을 한방에 해결해주시다니 넙죽 절이라도 올리고 싶네요ㅠㅠ 정말 감사합니다. 해결하였습니다!! 와우!!

답변을 작성하시기 전에 로그인 해주세요.
전체 59,520
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT