2005년 11월 25일 금요일

코맨트에 flag tag 넣기


요전에 설치한 twatch에 ip에 해당하는 국기를 보여주는 기능이 있더군요,,TT에도 있던 생각이 나서 zog에도 달아봅니다.


저 같은 경우는 넣을만한곳을 못찾아서 DEL 대신에 flag를 넣도록 하였습니다만 아무곳이나 어울릴만한 곳에 넣을수 있도록 치환자를 하나더 만들어 놓았습니다.


조그폴더 / comment_view.php 수정


1. 파일버젼  첨부파일


먼저 첨부 파일을 다운받아 조그폴더에 업로드 한후 아래부분을 수정해주세요.



    $out = str_replace('<$CommentsAuthor$>', $comment_name . $keyname , $out);

    $out = str_replace('<$CommentsIP$>', $c_data[ip],$out); // 코멘트에 ip 보여주기


 // del 대신에 국기로 달기 시작

 $ip_number = sprintf("%u", ip2long($c_data[ip]));

 $filename = "/free/home/yumemiru/html/default/ip-to-country.csv";

 $fp = fopen ($filename,"r");

  while($country_data = fgetcsv($fp, 1000, ","))

        {

         if($ip_number >= $country_data[0] && $ip_number <= $country_data[1]) 

          {

           $nat_flag=$country_data[2];

           break;

           }

          else 

           {

            $nat_flag="unknown";

               }

       }

     fclose ($fp);

     $out = str_replace('<$Country$>', "<img src=http://www.zeeps.net/twatch/flags/".$nat_flag.".gif border='0'>",$out); 

     //del 대신에 국기로 달기 끝



2. DB 버젼 첨부파일


DB를 설치하기 귀찮은 분은 파일을 업로드하여도 됩니다만, 실행속도를 생각한다면 DB버젼을 추천합니다.


먼저 디비를 구성한뒤 아래부분을 수정해주세요.



    $out = str_replace('<$CommentsAuthor$>', $comment_name . $keyname , $out);

    $out = str_replace('<$CommentsIP$>', $c_data[ip],$out);


 // del 대신에 국기로 달기 시작

   $ip_number = sprintf("%u", ip2long($c_data[ip]));


   $country_query  = "SELECT code FROM twatch_ipcou WHERE ipfrom<=$ip_number AND ipto>=$ip_number";

   $country_exec = mysql_query($country_query);

   $ccode_array=mysql_fetch_array($country_exec);

   $nat_flag=$ccode_array[0];


     $out = str_replace('<$Country$>', "<img src=http://www.zeeps.net/twatch/flags/".$nat_flag.".gif border='0'>",$out); 

     //del 대신에 국기로 달기 끝



스킨폴더/comment.html 파일 수정


스킨제작자에 따라 조금 틀리지만 대부분 올리버네님의 스킨을 쓰므로 큰 차이는 없을것으로 사료됩니다.



  <$CommentsBody$><ifShowRemoveButton><a onfocus='blur()' href='<$CommentDelURL$>'> <$Country$> </a></ifShowRemoveButton>



기존에 삭제 이미지가 있는곳에 <$country$>로 바꾸면 됩니다.

댓글 14개:

  1. 또 왔다 갑니다. 예제에 엉뚱이의 댓글이 붙어 있군요. 영광입니다. ^^<!-- <homepage>http://www.heybears.com</homepage> -->

    답글삭제
  2. [허걱]엉뚱이 // 네...그저 맨 마지막 댓글을 붙였을뿐인데 그렇게 생각하셔도 전 모릅니다.

    <!-- <zogNick><A HREF=&#039;http://www.zeeps.net/blog/&#039; title=&#039;http://www.zeeps.net/blog/&#039; target=_blank ><img border=0 alt=&#039;유메미루&#039; border=&#039;0&#039; src=&#039;http://www.zeeps.net/blog//webmsg/yumemiru_zeeps.png&#039;></A></zogNick> <zogURL>http://www.zeeps.net/blog/</zogURL> -->

    답글삭제
  3. <a href="http://zzuzzu.apmsetup.net/blog/?&no=50" target=_blank ><b>코멘트에 국기달기</b></a><BR/>유메미루님의 코멘트에 코멘트를 남긴 사람의 아이피를 보고 국기를 다는 팁을 보고<BR>제홈에도 적용을 시켜 보았습니다.<BR><BR>물론 저는 twatch를 사용하기 때문에 DB 버전을 사용하였고, 국기를 코멘트를 남긴 사람이름 앞에<BR>두기로 하였습니다.<BR><BR>

    1. DB 버젼으로 설치<BR>

    이미 twatch를 실행하였기 때문에 이미 국가별 구성은 완료가 된 상태입니다.<BR>따라서 조그폴더의 comment_viw.php를 수정합니다.<BR>&nbsp;- 조그폴더 / comment_view.php 수정

    <DIV class=boxstyle2>

    &nbsp;&nbsp;&nbsp; $out = str_replace(&#039;&lt;$CommentsAuthor$&gt;&#039;, $comment_name . $keyname , $out);<BR>&nbsp;&nbsp;&nbsp; $out = str_replace(&#039;&lt;$CommentsIP$&gt;&#039;, $c_data[ip],$out);

    &nbsp;// 이름앞에 국기 달기 시작<BR>&nbsp;&nbsp;&nbsp;$ip_number = sprintf("%u", ip2long($c_data[ip]),$ip_number);

    &nbsp;&nbsp; $country_query&nbsp; = "SELECT code FROM twatch_ipcou WHERE ipfrom&lt;=$ip_number AND ipto&gt;=$ip_number";<BR><BR>&nbsp;&nbsp; $country_exec = mysql_query($country_query);<BR>&nbsp;&nbsp; $ccode_array=mysql_fetch_array($country_exec);<BR>&nbsp;&nbsp; $nat_flag=$ccode_array[0];

    &nbsp;&nbsp;&nbsp;&nbsp; $out = str_replace(&#039;&lt;$Country$&gt;&#039;, "&lt;img src=http://www.zeeps.net/twatch/flags/".$nat_flag.".gif border=&#039;0&#039;&gt;",$out);&nbsp; <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp; //이름앞에&nbsp;국기 달기 끝<BR><BR>** 위의 부분에서 저는 작동이 안되어 확인결과 2개 부분에서 문제가 있었습니다.<BR>&nbsp;&nbsp;&nbsp; 첫째는 $ip_number = sprintf("%u", ip2long($c_data[ip]));이 작동이 안되어<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ip_number = sprintf("%u", ip2long($c_data[ip]),$ip_number); 이렇게 수정하니 에러없이<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 되더라구요...<BR>&nbsp;&nbsp;&nbsp; 둘째는 $out = str_replace(&#039;&lt;$Country$&gt;&#039;, "&lt;img src=http://www.zeeps.net/twatch/flags/".$nat_flag.".gif border=&#039;0&#039;&gt;",$out);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 부분에서 img 앞에 공백이 있어 그런지 그림이 정상적으로 보이지 않아&nbsp;공백이 삭제하니<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;국기가 정상적으로 나왔습니다.<BR>&nbsp;&nbsp;&nbsp; 세째는 twatch_ipcou&nbsp; 및 &nbsp;<A href="http://www.zeeps.net/">www.zeeps.net</A> 부분은 본인 환경에 맞게 수정해 주시길 바랍니다.<BR><BR>2. 스킨폴더/comment.html 파일 수정

    스킨제작자에 따라 조금 틀리지만 자기가 원하는 부분에 &lt;$Country$&gt; 을&nbsp;&nbsp;두시면 됩니다.<BR>저의 경우에는 이름앞에 국기를 두기로 했으니 아래와 같이 삽입하면 됩니다.

    <DIV class=boxstyle2>

    ... span class=com&gt;&lt;$Country$&gt;&amp;nbsp;&lt;b&gt;&lt;$CommentsAuthor$&gt;&lt;/b&gt;&lt;/span ...<A onfocus=blur() href="http://www.zog.co.kr/bbs/$CommentDelURL$"></A></DIV>

    <BR>

    위의 글은 조그사이트에서 유메미루님의 팁공유중에 재홈에 응용한 팁을 올린 것이오니 참고바라며<BR>원본글은 아래의 링크를 클릭하시면 됩니다.<BR><A href="http://www.zog.co.kr/bbs/view.php?id=tip&amp;page=1&amp;sn1=&amp;divpage=1&amp;sn=off&amp;ss=on&amp;sc=on&amp;select_arrange=headnu..

    답글삭제
  4. 트랙백을 하라고 하셔서 위에 트랙백을 했는데 맞는지 모르겠네요...<br />

    저 블로그에는 그냥 링크만 있는데 여기에는 본문까지 코멘트에 나타나네요..<br />

    혹시 잘못한 것이면 삭제하고 방법을 알려주세요....*^^*

    <!-- <zogNick><A HREF=&#039;http://zzuzzu.apmsetup.net/blog/&#039; title=&#039;http://zzuzzu.apmsetup.net/blog/&#039; target=_blank ><img border=0 alt=&#039;쭈쭈&#039; border=&#039;0&#039; src=&#039;http://zzuzzu.apmsetup.net/blog//webmsg/1.gif&#039;></A></zogNick> <zogURL>http://zzuzzu.apmsetup.net/blog/</zogURL> -->

    답글삭제
  5. 쭈쭈 // 제 블로그에서는 트랙백 내용 전체가 나오는것이 정상입니다..<br />

    약간 수정을해놔서요,,,

    답글삭제
  6. 유메미루 // 네...저는 혹시 제가 실수를 하지 않았나 해서 걱정을 했는데 원래 그런 것이라고 하니 다행입니다.

    <!-- <zogNick><A HREF=&#039;http://zzuzzu.apmsetup.net/blog/&#039; title=&#039;http://zzuzzu.apmsetup.net/blog/&#039; target=_blank ><img border=0 alt=&#039;쭈쭈&#039; border=&#039;0&#039; src=&#039;http://zzuzzu.apmsetup.net/blog//webmsg/1.gif&#039;></A></zogNick> <zogURL>http://zzuzzu.apmsetup.net/blog/</zogURL> -->

    답글삭제
  7. 유익한 팁 감사드립니다. <br />

    조그를 설치하고 이제 하나 둘씩 입맛에 맞게 고쳐가고 있는 중입니다. <br />

    <br />

    한데, 2번 버전 부분에 대해서는 초보라 잘 이해가 안되고<br />

    1번 내용과 스킨폴더/comment.html 파일 수정만 시도해 봤는데, 에러가 떠 잽싸게 지워버렸습니다. <br />

    <br />

    1번 파일과 2번 파일을 현재 계정에 업로드만 시켜놓은 상태인데,<br />

    2번 db버전 관련한 내용중 쭈쭈님께서 언급하신 "twatch를 실행하였기 때문에 db버전을 이용하신다"고 돼 있는데,이 부분에 대한 좀더 자세한 설명을 알려주실 있을까요?<br />

    동 기능을 꼭 이용하고 싶은데, 워낙 실력이 부족하네요. --;;<br />

    <br />

    <br />

    <br />

    <br />

    <!-- <homepage>http://victor.netian.com/blog/</homepage> -->

    답글삭제
  8. victor // 1번의 파일예제의 경우 파일을 하나씩 열어 flag를 찾다보니 좀 느려질수 있답니다..그래서 twatch의 DB를 이용한 flag 보여주기를 권하는것이구요,,<br />

    쭈쭈님의 글의 의미는 <u>기존에 twatch를 이용하고 있었기 ㄸㅒ문에 <u>2번 DB버젼을 사용했다는 뜻으로 보이는군요,,

    <!-- <zogNick><A HREF=&#039;http://www.zeeps.net/blog/&#039; title=&#039;http://www.zeeps.net/blog/&#039; target=_blank >유메미루</A></zogNick> <zogURL>http://www.zeeps.net/blog/</zogURL> -->

    답글삭제
  9. 보완설명을 들어보니 1번 방식과 2번 방식은 별개의 것이고, 실행 속도 등을 감안하면 2번 DB 버전을 설치하여 사용하는 것을 권장하고 있는 듯 하네요. <br />

    <br />

    한데, 문제는 2번 DB버전 설치 및 DB 구성방식에 대해서는 명확한 설명이 없어 현재로서는 어떻게 해볼 도리가 없군요. phpmyadmin을 이용하여 간단하게 핸들링하면 될 것 같은데, 이에 대한 간략한 설명을 해주실 수 있는지요? <br />

    <br />

    유메미루님께서 "먼저 디비를 구성한뒤 아래부분을 수정해주세요."라고 하신 DB 구성방법에 대해서 말예요. DB 구성이후에는 조그폴더의 comment_view.php 파일과 스킨폴더의comment.html 파일을 위의 예제방식으로 수정해 주는 것은 큰 어려움이 없을 듯 합니다. <br />

    <br />

    의아스러운 점 하나는 유메미루님께서는 코멘트 삭제버튼에 해당하는 del키 자리에 플래그를 넣으셨는데, 이점 불편하지는 않나요? 사이트를 운영 하다보니 부득이 수정이나 삭제가 불가피한 코멘트가 있던데요, 물론 운영자의 취향이나 필요성에 의한 선택사항이라고 생각되긴 하나 제 경우에 비춰보면 del키 자리보다는 쭈쭈님처럼 닉네임 앞뒤에 오는 것이 좋을 것 같아 그냥 드려보는 말씀입니다. <br />

    답변 감사드립니다. <br />

    답글삭제
  10. 위에 코멘트를 달고 나니 모든 글에 밑줄이 그어져 있네요. 아직 조그나 블로그에 글쓰기 및 트래픽 사용 등에 익숙하지 못해 발생한 현상입니다. 코멘트 란에도 수정버튼이 있으면 좋겠다는 생각이 드는군요? ^^;;<br />

    답글삭제
  11. victor // phpmyadmin사용법은 이전에 다른분들이 많이 작성해놓은 팁을 이용하시면 될듯하구요..<br />

    <a href=http://www.nzeo.com/bbs/zboard.php?id=p_study&no=866 target=_blank>http://www.nzeo.com/bbs/zboard.php?id=p_study&no=866</a><br />

    flag의 위치는 현재는 코멘트 날짜 옆으로 옮겨져있답니다...

    <!-- <zogNick><A HREF=&#039;http://www.zeeps.net/blog/&#039; title=&#039;http://www.zeeps.net/blog/&#039; target=_blank >유메미루</A></zogNick> <zogURL>http://www.zeeps.net/blog/</zogURL> -->

    답글삭제
  12. 유메미루 // 간략한 설명부탁 드렸던 건 phpmyadmin 사용법이 아닌 flag를 보여주기 위한 DB 구성 방법이었는데... 제가 써놓은 글을 보니 전하고자 하는 뜻이 잘못 전달될 수도 있었군요. 죄송합니다. --;<br />

    <br />

    날짜 옆에 위치한 플래그와 관련하여 본문에 설명하신 "// del 대신에 국기로 달기 시작.." 주석 부분은 수정을 할 필요는 없는건가요? <br />

    <br />

    <br />

    <br />

    답글삭제
  13. victor // 첨부 파일을 다운 받아 phpmyadmin을 이용하여 DB에 첨부하면 구성이 완료가 된것이랍니다..너무 간단해서 설명을 안했는데 잘 모르는 분은 힘들었을지도,,<br />

    그리고 주석부분은 변경을 안하셔도 그대로 사용가능합니다.. 다른것은 스킨의 구성에 따라 달라지니까요..<br />

    <br />

    답글삭제
  14. 유메미루 // 정말 면목이 없네요. --;;;<br />

    phpmyadmin을 이용하여 DB에 첨부하면 구성이 완료가 된것이라고 하셨는데..., DB에 어떻게 첨부해야 하는지요? phpmyadmin 버전은 2.61버전이 설치돼 있습니다.

    답글삭제