도쿠위키(dokuwiki)에 다음뷰 위젯 자동으로 박기
47714257
이 방법 말고 다음뷰 플러긴으로 제작중입니다. 도쿠위키 다음뷰 추천위젯표시 플러긴 (Dokuwiki Daumview Plugin) 참조.
워드프레스의 블루다음뷰라는 플러그인을 살짝 수정했더니 생각보다 쉽습니다. 감사합니다.
일단 다음뷰위젯이 작동하는 원리를 이해해봅시다.
일단 다음뷰에서 발행을 하면
- 글에 대한 (글의 주소에 대한) 고유 번호가 생깁니다.
- 다음 뷰 위젯 플래쉬에 이 번호를 넣어서 표시해 주면 됩니다.
이것을 dokuwiki의 html 삽입 옵션을 켜고 일일히 발행 후 붙여넣어도 되지만 매우 귀찮기 때문에
출력이라도 자동으로 되게 해봅시다.
- tpl_function.php
/** * 다음뷰위젯 출력.. 1은 큰것 2는 중간것 3은 버튼 */ function showDaum($ttty) { $nid =getNid(); $box = array( 1=>'<embed src="http://api.v.daum.net/static/recombox1.swf?nid='.$nid. '" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"></embed>', 2=>'<embed src="http://api.v.daum.net/static/recombox2.swf?nid='.$nid. '" quality="high" bgcolor="#ffffff" width="400" height="58" type="application/x-shockwave-flash"></embed>', 3=>'<embed src="http://api.v.daum.net/static/recombox3.swf?nid='.$nid. '" quality="high" bgcolor="#ffffff" width="67" height="80" type="application/x-shockwave-flash"></embed>' ); if($nid != -1) echo $box[$ttty]; } /** * 다음뷰에 포스트가 송고 되어 있는지 체크 */ function getNid() { global $ID; $ret = -1; $xml = getXML("api.v.daum.net","/open/news_info.xml?permalink=".DOKU_URL.str_ireplace(':','/',$ID)); if(is_object($xml)) { if($xml->head->code ===== "200") $ret = $xml->entity->news->id; } return $ret; } /** * xml 가져오기... */ function getXML($url, $uri) { if(!($fp=fsockopen($url, 80, $errno, $errstr, 5 ))) fprintf( stderr, $errstr ); $out = "GET $uri HTTP/1.1\r\n"; $out .= "Host: api.v.daum.net\r\n"; $out .= "Connection:Close\r\n\r\n"; fputs( $fp, $out ); while( $data = fgets($fp) ){ if( !trim($data) ) break; } $data = stream_get_contents($fp); return simplexml_load_string($data); }
위의 코드는 워드프레스의 블루다음뷰라는 플러그인에서 가져와서 dokuwiki에 맞게 수정한 것입니다. 코드를 본인의 template의 tpl_function.php에 붙여넣읍시다.
혹은 template에 tpl_function.php가 없는 경우는
새로 파일을 만들고 main.php
상단에
@require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */
를 삽입합니다.
다음으로 할 것은 이 function을 불러오는 것입니다.
<?php echo showDaum('2'); ?>
위의 코드를 본인의 tpl의 main.php를 수정해서 적당한 위치에 넣어도 됩니다. 저는 pagefooter.html에 넣었습니다. 숫자는 출력.. 1은 큰것 2는 중간것 3은 버튼
송고 자체는 http://v.daum.net/my/send 에서 RSS 등록 후 수동으로 해야 됩니다.
도쿠위키 설정
도쿠위키 설정에서 반드시
XML 피드 타입 | RSS 2.0 |
XML 피드 링크 정보 (rss_linkto) | 현재문서보기 |
이렇게 해야 정상작동합니다.
믹시위젯
<!-- 믹시 위젯 시작 --> <?php $ddd=p_get_metadata($INFO['id'], 'date', false);?> <div style="float:left; margin: -15px 0px -10px 0px;"> <script type='text/javascript'> document.write("<scr"+"ipt type='text/javascript' src='http://www.mixsh.com/widget/mixup/loader.js?muid=167361 &guid=<?php echo((DOKU_URL.str_replace(':','/',$INFO['id'])))?> &rdate=<?php echo(($ddd['created']))?>&rawhtml=&skin=1&showhitcnt=1&platform=5'></scr"+"ipt>"); </script> </div>