문서의 이전 판입니다!


도쿠위키(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>

일본어 번역

<!-- 일본어 번역 단추 시작 -->
<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>

연결문서