차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:daumview [2013/09/30 13:39] 192.168.0.1tech:daumview [2016/07/12 09:26] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{tag>일상 dokuwiki bluedaumview 다음뷰 위젯 php 도쿠위키}}
 +======도쿠위키(dokuwiki)에 다음뷰 위젯 자동으로 박기======
 +
 +{{daumview>47714257}}
 +
 +
 +<WRAP center round important 60%>이 방법 말고 다음뷰 플러긴으로 제작중입니다.
 +[[tech:dokuwiki_daumview_plugin|]] 참조.</WRAP>
 +
 +
 +
 +워드프레스의 [[http://wordpress.org/extend/plugins/bluedaumview/|블루다음뷰]]라는 플러그인을 살짝 수정했더니 생각보다 쉽습니다. 감사합니다. 
 +
 +일단 다음뷰위젯이 작동하는 원리를 이해해봅시다. 
 +
 +일단 다음뷰에서 발행을 하면
 +
 +  -  글에 대한 (글의 주소에 대한) 고유 번호가 생깁니다. 
 +  -  다음 뷰 위젯 플래쉬에 이 번호를 넣어서 표시해 주면 됩니다. 
 +
 +이것을 dokuwiki의 html 삽입 옵션을 켜고 일일히 발행 후 붙여넣어도 되지만 
 +매우 귀찮기 때문에
 +
 +**출력이라도** 자동으로 되게 해봅시다. 
 +
 +<file php 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);
 +}
 +</file>
 +
 +위의 코드는 워드프레스의 [[http://wordpress.org/extend/plugins/bluedaumview/|블루다음뷰]]라는 플러그인에서 가져와서 dokuwiki에 맞게 수정한 것입니다. 
 +코드를 본인의 template의 **tpl_function.php**에 붙여넣읍시다.
 +
 +혹은 template에 **tpl_function.php**가 없는 경우는
 +
 +새로 파일을 만들고 ''main.php'' 상단에
 +
 +  @require_once(dirname(__FILE__).'/tpl_functions.php'); /* include hook for template functions */
 +를 삽입합니다. 
 +
 +
 +다음으로 할 것은 이 function을 불러오는 것입니다. 
 +<code php>
 +<?php echo showDaum('2'); ?>
 +</code>
 +
 +위의 코드를 본인의 tpl의 **main.php**를 수정해서 적당한 위치에 넣어도 됩니다.
 +저는 **pagefooter.html**에 넣었습니다. 
 +숫자는 출력.. 1은 큰것 2는 중간것 3은 버튼
 +
 +송고 자체는 http://v.daum.net/my/send 에서 RSS 등록 후 수동으로 해야 됩니다.
 +
 +=====도쿠위키 설정=====
 +
 +도쿠위키 설정에서 <color orange>반드시</color> 
 +
 +|XML 피드 타입| RSS 2.0 |
 +|XML 피드 링크 정보 (rss_linkto) |  현재문서보기 |
 +
 +이렇게 해야 정상작동합니다. 
 +
 +
 +=====믹시위젯=====
 +<code php>
 +<!-- 믹시 위젯 시작 -->
 +<?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>
 +</code>
 +
 +=====일본어 번역=====
 +<code html>
 +<!-- 일본어 번역 단추 시작 -->
 +<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>
 +</code>