웹 표준에 맞는 다음 뷰(View) 추천 단추 달기

다음 뷰(Daum VIew) 추천 단추
  다음 뷰(View)에서 퍼가기 기능으로 제공하는 추천 단추 코드에는 embed 태그가 들어가 있다. 이 때문에 다음 뷰의 추천 단추가 달린 XHTML 문서는 유효성 검사를 통과하지 못한다.

<embed src="http://api.v.daum.net/static/recombox1.swf?nid=18775255&m=1" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"></embed>

   XHTML 유효성 검사를 통과하게 하려면 embed 태그를 object나 iframe을 써서 바꾸어야 한다. 위 코드를 아래처럼 object로 바꾸어 손을 보면 XHTML 문서에서도 유효성 검사를 통과할 수 있다.

<object data="http://api.v.daum.net/static/recombox1.swf" width="400" height="80" type="application/x-shockwave-flash">
<param value="http://api.v.daum.net/static/recombox1.swf" name="movie"/>
<param value="nid=18775255" name="flashvars"/>
<param value="high" name="quality"/>
<param value="#ffffff" name="bgcolor"/>
</object>


  인터넷 탐색기(IE), 파이어폭스, 오페라, 크롬, 사파리에서 뷰 추천 단추를 나타내는 것은 별 문제가 없어 보인다.

  텍스트큐브에는 엽기민원님의 Daum View 플러그인이 널리 쓰이므로, 이 확장기능(플러그인)의 출력문을 고치면 쉽게 웹 표준에 맞는 단추를 붙일 수 있다. 1.2판을 기준으로 index.php 파일을 열면 557째 줄부터 다음처럼 나오는 처리문이 단추의 태그를 출력하는 부분이다.

switch($data['widgetKind']) {
case 1:
case 2:
case 3:
$widget = "<div style=\"margin: 20px 0pt; width: 100%; text-align: center;\">
<object height=\"{$height}\" align=\"middle\" width=\"{$width}\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\">
<param value=\"always\" name=\"allowScriptAccess\"/>
<param value=\"{$flash_url}\" name=\"movie\"/>
<param value=\"nid={$daumviewid}\" name=\"flashvars\"/>
<param value=\"high\" name=\"quality\"/>
<param value=\"#ffffff\" name=\"bgcolor\"/>
<embed src=\"{$flash_url}\" height=\"{$height}\" width=\"{$width}\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" bgcolor=\"#ffffff\" quality=\"high\" flashvars=\"nid={$daumviewid}\"/>
</object>
</div>";
break;
default:
$widget = "";
break;
}


  위 처리문을 아래처럼 바꾸고 /plugins/YP_DaumVew/index.php를 덮어쓴다.

switch($data['widgetKind']) {
case 1:
case 2:
case 3:
$widget = "<div style=\"margin: 20px 0pt; width: 100%; text-align: center;\">
<object type=\"application/x-shockwave-flash\" data=\"{$flash_url}\" height=\"{$height}\" width=\"{$width}\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\">
<param value=\"always\" name=\"allowScriptAccess\"/>
<param value=\"{$flash_url}\" name=\"movie\"/>
<param value=\"nid={$daumviewid}\" name=\"flashvars\"/>
<param value=\"high\" name=\"quality\"/>
<param value=\"#ffffff\" name=\"bgcolor\"/>
<param name=\"wmode\" value=\"transparent\" />
</object>
</div>";
break;
default:
$widget = "";
break;
}


덧붙임(2011.8.20)

  추천 단추를 나타내는 swf 객체가 z-index 값을 적용되지 않아서 다른 객체를 가리기도 합니다. <param name="wmode" value="transparent" />를 끼워넣으면 object로 넣은 객체에 z-index 값이 적용되어 다른 객체를 가리지 않게 할 수 있습니다.
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. initguru 2011/08/07 23:16 고유주소 고치기 답하기

    엽기민원님의 다음 뷰 플러그인이 동작하지 않는 이유가 이것이었을까요.. 추천 버튼도, 송고하는 기능도 안되더라고요. 좋은 내용 배워갑니다!

    • 팥빙산 2011/08/08 10:42 고유주소 고치기 답하기

      이 표현 방법 때문에 송고 기능까지 영향이 가는지는 모르겠습니다.
      요즈음 나오는 브라우저들은 embed 태그 호환성이 제각각이어서 되도록 embed 태그를 쓰지 않는 게 나은 것 같긴 합니다.

  2. 알송달송IT세상 2012/09/04 13:47 고유주소 고치기 답하기

    스킨을 바꾸려고 하는데요 ..현재 스킨이 심플해서 바꿔보려고 하는데요 본문과 사이트바 폭을 늘리기 해도 될까요? ^^

  3. 김정환 2012/11/23 16:02 고유주소 고치기 답하기

    또 들렀네요.. 몇시간 씨름 한 끝에 스킨을 드디어 바꾸었답니다. ㅎㅎ

    이번에 다음뷰를 도전해 보려는데.. 대충 적용은 했으나 자세히 몰라 문의드리려구요^^

    다음뷰를 추천받는 방법은 크게 두가지인듯 싶네요.

    첫째, 인기글, 최신글 목록을 통해 추천받는 경우
    둘째, 박스형 또는 손가락 모양을 통해 개별글 본문에 삽입하여 추천받는 경우

    <첫번째의 경우>
    iframe으로 시작하더군요.. xhtml에 문제가 없을것으로 생각되네요.

    궁금한점은 팥알님의 글을 보면 다음뷰의 인기글과 최신글 둘다 모든 포스팅에 들어가 있다는 것입니다. 저는 여태껏 일일이 인기글이나 최신글 중 하나만 글작성시의 edit를 통해 본문 맨 아래 복사하였는데요

    [첫번째에 대한 질문]
    1. 팥알님은 인기글과 최신글을 매 포스팅마다 붙여넣으신 것인지요? 아니면 이것도 블로그 작성시마다 따로 붙여넣기를 안해도 적용되는 것인지요?

    2. xhtml의 문서의 유효성 검사를 통과하지 못하면 어떤 문제가 발생하는지요?
    제경우 글작성시 HTML, Markdown, TTML, Textile 네가지 경우 밖에 없는데 큰 상관은 없는것인지요? 다른 블로그를 서치해보니 TTML이 좋다고 하여 포스팅할때 이것으로만 하거든요


    <두번째의 경우>
    다음뷰에서는 박스형이나 손가락 모양은 본문글에 최신글이나 인기글은 본문글 또는
    블로그에 위치할 수 있다고 하더라구요

    [두번째 박스형이나 손가락모양에 대한 질문]
    1. 박스형이나 손가락 모양의 추천글 역시 최신글과 마찬가지로 저는 포스팅 할때마다
    복사하여 붙여넣기를 하고 있습니다. 두번째의 경우는 포스팅할때마다 복사하는 것이
    맞는지요?


    기다리던 주말이 다가 오네요.. 올해는 날씨도 춥고 눈도 많이 온다네요..
    주말 잘 보내세요.^^

    • 팥알 2012/11/23 18:55 고유주소 고치기 답하기

      작업에 성공하셨군요. 설치형 블로그에 안착하신 걸 축하 드립니다.^^

      제 블로그 아래에 다음 뷰 최신글/인기글 목록은 스킨을 좀 고쳐서 옆막대(사이드바) 형식으로 넣고 있습니다. 옆막대(사이드바) 형식이 아니더라도 skin.html에 적당히 끼워 넣을 수도 있습니다.

      손가락 모양 다음뷰 추천 단추를 다는 도구로 엽기민원님의 플러그인이 있습니다.

      http://www.textcube.org/plugin/698

      이 도구를 쓰면 글마다 본문 아래에 추천 단추를 넣을 수 있고, 플러그인 설정들 통하여 단추 모양도 바꿀 수 있습니다. 다음 뷰에 글 발행도 쉽게 할 수 있고요.

      사실 텍스트큐브는 XHTML 유효성 검사를 잘 통과하게끔 글이 저장되지는 않고 있어서, 저는 글을 저장할 때에 TTML 등이 아니라 HTML 상태로 놓고 저장하는 꼼수를 써서 억지로 유효성 검사를 통과하게 하고 있습니다. HTML 유효성 검사에 걸리지 않는 문서는 검색기가 잘 알아먹을 확률이 높고, 사람의 눈에도 깔끔하게 보여서 유지/보수가 편한 장점이 있습니다.

      하지만 HTML 유효성 검사를 통과하지 못한다고 꼭 문제가 생기는 건 아니므로, 모든 사용자들이 너무 신경 쓸 문제는 아닙니다. 다만 저는 어쩌다 만들었던 플러그인이나 스킨을 시험할 때에 HTML 유효성 검사를 통과하게 할 필요를 느껴서 신경 쓰고 있을 뿐입니다.

      HTML 유효성 검사는 어떤 땐 불합리하게 옥죄는 면이 있어서 다 따르기 어려울 때가 많습니다. 위 글에서 설명한 내용은 유효성 검사를 통과하게 하려는 억지스럽게 부린 꼼수라고 보셔도 됩니다.