2010년 3월 23일 화요일

URL Shortener - 재수정 -

Permalink 처럼 Shortenlink라는 이름으로 Shorted URL이 블로그툴이나 기타 CMS에서 기본 제공되면 좋겠다. 굳이 goo.gl 같은 Shortener를 따로 쓰지 않게. (귀찮음)
예를 들어 텍스트큐브라면 "http://tc.it/XXXX" 같은 Shorted URL을 충분히 자체제공할 수 있지 않나?


--- 수정 ---

그래서 만들었음.

아래의 코드를  <body>바로 아래에 넣고,


<script type="text/javascript" defer="defer">
//<![CDATA[
var urlPool = new Array();
function  shortenURL(entry_id) {
  urlPool.push(entry_id);
}

function doShortenURL() {
  var len = urlPool.length;
  for (var i = 0; i < len; i++) {
    var entry_id = urlPool[i];
    window.googl_callback=function(response){
      if(response.error_message){
        alert('Error:' + response.error_message);
      }else{
       var short_url = response.short_url;
       var rep = document.getElementById('shorten_url_' + entry_id);
       rep.innerHTML = short_url;
       rep.href = short_url;
      }
    };
    var u='http://ebadac.textcube.com/' + entry_id; // <- 요부분 각자 블로그에 맞게.
    var s=document.createElement('script');
    s.src='http://ggl-shortener.appspot.com/?url=' + encodeURIComponent(u) + '&jsonp=googl_callback';
    void(document.body.appendChild(s));
  };
}
//]]>
</script>

그 다음, </body>의 바로 위에, 아래 코드를 붙여 넣고...

<script type="text/javascript">
//<![CDATA[
doShortenURL();
//]]>
</script>






다음 코드를 각 엔트리의 적절한 구역에 끼워넣으면 됨
<span class="shorten_url"> |
<script type="text/javascript">
//<![CDATA[
shortenURL([##_article_rep_id_##]); //<- 이거 블로그 도구마다 다를테니 알아서.. 텍스트큐브는 이렇다오.

//]]>
</script>
이 글의 단축URL[<a id="shorten_url_[##_article_rep_id_##]" href="#"> </a>]
</span>
내 경우에는 제목 밑에 대충 붙였음.

그러면 아래처럼 붙음.

아마도 tistory나 wordpress나 대충 비슷하게 될 거라고 생각함.(그런데 아마 wordpress에는 플러그인이 있는 것으로 알고 있음)

버그 있다면 알아서 잡으세요. 오랜만에 코드잡으니까 귀찮다능...


--- 재수정 했음 ---
IE8의 악명높은 KB927917 버그(?) 때문에 다시 수정했음. IE 안쓴지 너무 오래되어 이런 문제가 있는지 생각도 못했다능.


댓글 없음:

댓글 쓰기