도쿠위키(dokuwiki)에 다음뷰 위젯 자동으로 박기

47714257

이 방법 말고 다음뷰 플러긴으로 제작중입니다. 도쿠위키 다음뷰 추천위젯표시 플러긴 (Dokuwiki Daumview Plugin) 참조.

워드프레스의 블루다음뷰라는 플러그인을 살짝 수정했더니 생각보다 쉽습니다. 감사합니다.

일단 다음뷰위젯이 작동하는 원리를 이해해봅시다.

일단 다음뷰에서 발행을 하면

  1. 글에 대한 (글의 주소에 대한) 고유 번호가 생깁니다.
  2. 다음 뷰 위젯 플래쉬에 이 번호를 넣어서 표시해 주면 됩니다.

이것을 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>

일본어 번역

<!-- 일본어 번역 단추 시작 -->
<div  style="float:left;padding:5px;">
<a href="http://translate.ocn.ne.jp/LUCOCN/c3/hm_ex.cgi?SURL=<?php echo DOKU_URL.$INFO['id']?>&XTYPE=1&SEARCH=T&SLANG=ko&TLANG=ja" title="日本語へ翻訳する"><img src="<?php echo DOKU_TPL.'images/nihongo.png'?>" /></a>
</div>

역링크