크게 작게 인쇄

[그누보드]코멘트를 남겨야만 다운로드 가능하게!!

코멘트를 남겨야만 다운로드 가능하게!!

코멘트를 남겨야만 다운로드 가능하게 하는 기능입니다.
간단히 download.skin.php 파일에 아래코드만 추가하시면 됩니다.
회원, 비회원 모두 작동합니다.

if (!$is_admin) { // 코멘트 남겨야 다운로드 가능
    $sql = "select wr_id from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and (mb_id = '$member[mb_id]' or wr_ip = '$_SERVER[REMOTE_ADDR]')";
    $row = sql_fetch($sql);
    if (!$row) {
        alert("코멘트를 남겨야 다운로드가 가능합니다.");
    }
}


[출처] 포털 마이위트 - http://g4.miwit.com/bbs/board.php?bo_table=g4_tiptech&wr_id=47



-보완-
첨부파일 다운로드시 코멘트받기이며 이전에 올린 팁에서 보고된
문제점을 일부 보완한 것입니다.

아래의 설명은 제가 직접 적용해본 그대로 설명 하므로 참고하세요.


1,
g4/관리자/게시판관리/게시판별로 이기능을 사용하고자 하는 게시판 설정으로
들어간후 여유필드1 을 사용하였으며 여유필드1에 숫자 1을 넣은후 저장하기
만약 여유필드1 을 이미 사용중이라면 적당한 곳을 사용한후 나중에 설명하는
코드에서 수정해 줍니다.


참고사항:
여유필드는 bo_1 과 wr_1 을 사용하므로 수정하실분은 아래의 설명에서
관련필드명을 수정하세요.


****************************

2,
사용하고자 하는 게시판 스킨을 수정합니다.
저는 기본스킨(basic) 을 사용했습니다.
write.skin.php , view.skin.php , view_comment.skin.php 3개 입니다.

****************************

2-1

회원이 자료등록시 다운로드를 하는 회원들에게 코멘트를 받을것인지를 지정하게 합니다.
write.skin.php 의 내용중 아래부분을 찾은후

 <tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>

<? if ($is_link) { ?>
<? for ($i=1; $i<=$g4[link_count]; $i++) { ?>
<tr>
    <td style='padding-left:20px; height:30px;'>· 링크 #<?=$i?></td>
    <td><input type='text' class=ed size=50 name='wr_link<?=$i?>' itemname='링크 #<?=$i?>' value='<?=$write["wr_link{$i}"]?>'></td>
</tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<? } ?>
<? } ?>


위의 링크입력부분 바로위에
 <tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr> ☜ 이 라인바로위에
 아래의 코드를 추가한후 저장

 <?
if ($member[mb_id] and $board[bo_1] =="1"){
if ($w == "u"){
if($write[wr_1] ==""){$ranskcheck22 ="(현재: <b>코멘트받지않음</b>)";}
if($write[wr_1] =="1"){$ranskcheck22 ="(현재: <b>코멘트받음</b>)";}
if($write[wr_1] ==""){$ranskcheck1="";}
if($write[wr_1] =="1"){$ranskcheck1="checked";}
}else {
  $ranskcheck1="checked";
}
?>
<tr>
    <td style='padding-left:20px; height:30px;'>· 코멘트 다운로드</td>
    <td><input type=checkbox name=wr_1 value='1' <?=$ranskcheck1?>> 코멘트를 남겨야 다운로드가 가능하게 합니다. <?=$ranskcheck22?></td>
</tr>
<? } ?>



------------------------------------------------------------------------------------------------

2-2

내용보기에서 파일 다운로드 링크클릭시 코멘트가 없을 경우 멘트적용하기
view.skin.php 의 내용중 아래부분을 찾은후

<?
// 가변 파일
$cnt = 0;
for ($i=0; $i<count($view[file]); $i++)
{
    if ($view[file][$i][source] && !$view[file][$i][view])
    {
        $cnt++;
      echo "<tr><td height=22>&nbsp;&nbsp;<img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle> <a href=\"javascript:file_download('{$view[file][$i][href]}', '{$view[file][$i][source]}');\" title='{$view[file][$i][content]}'><strong>{$view[file][$i][source]}</strong> ({$view[file][$i][size]}), Down : {$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>";
  }
}





아래의 코드로 바꾸어 줍니다.


<?
// 가변 파일
 if ($member[mb_id]){
 $total_commnt  = mysql_num_rows(mysql_query(" select * from $write_table where wr_parent = '$wr_id' and mb_id ='$member[mb_id]'"));
  }
$cnt = 0;
for ($i=0; $i<count($view[file]); $i++)
{
    if ($view[file][$i][source] && !$view[file][$i][view])
    {
        $cnt++;
  if ($board[bo_1] =="1" && $view[wr_1] =="1"){
  if ($is_admin || $total_commnt > 0){
      echo "<tr><td height=22>&nbsp;&nbsp;<img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle> <a href=\"javascript:file_download('{$view[file][$i][href]}', '{$view[file][$i][source]}');\" title='{$view[file][$i][content]}'><strong>{$view[file][$i][source]}</strong> ({$view[file][$i][size]}), Down : {$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>";
    }else {
    echo "<tr><td height=22>&nbsp;&nbsp;<img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle> <a href=\"javascript:alert('코멘트를 남기셔야 다운로드가 가능합니다.\n\n잘쓰겠다는 감사의 말씀 부탁드려요. ^^');\" title=''><strong>{$view[file][$i][source]}</strong> ({$view[file][$i][size]}), Down : {$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>";
    }
      }else {
      echo "<tr><td height=22>&nbsp;&nbsp;<img src='{$board_skin_path}/img/icon_file.gif' align=absmiddle> <a href=\"javascript:file_download('{$view[file][$i][href]}', '{$view[file][$i][source]}');\" title='{$view[file][$i][content]}'><strong>{$view[file][$i][source]}</strong> ({$view[file][$i][size]}), Down : {$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>";
    }
  }
}




-------------------------------------------------------------------------------------------

2-3

첨부파일 다운로드시 코멘트 받기가 작동중일 경우 코멘트 삭제방지하기
이과정은 생략 하셔도 되며 필요하신분만 적용하세요.^^

view_comment.skin.php 의 내용중 아래 부분을 찾은후

<? if ($list[$i][is_del])  { echo "<a href=\"javascript:comment_delete('{$list[$i][del_link]}');\"><img src='$board_skin_path/img/btn_comment_delete.gif' border=0 align=absmiddle></a> "; } ?>


위의 소스라인을 아래처럼 바꾸어 줍니다.

<?
  if ($board[bo_1] =="1"){
  if (!$is_admin && $view[wr_1] =="1"){
  $comment_dels ="<a href=\"javascript:alert('파일 다운로드시 코멘트 작성 기능이 작동 중이므로 작성하신 코멘트를 지울수가 없습니다. ^^');\" title=''>";
  }else {
  $comment_dels ="<a href=\"javascript:comment_delete('{$list[$i][del_link]}');\">";
  }
  }else {
  $comment_dels ="<a href=\"javascript:comment_delete('{$list[$i][del_link]}');\">";
 }
?>
  <? if ($list[$i][is_del])  { echo "".$comment_dels."<img src='$board_skin_path/img/btn_comment_delete.gif' border=0 align=absmiddle></a> "; } ?>



---------------------------------------------------------------------------------------------

3,

스킨의/download.skin.php 또는
bbs/download.php 의 상단 검사과정 부분에 아래의 코드를 추가합니다.
(두가지 방법중에서 선택하여 한군데만 적용할것)

직접적인 다운로드용 파일을 호출시 검사과정 입니다.

if ($board[bo_1] =="1"){
$total_commnt  = " select wr_parent, mb_id from $write_table
    where wr_parent = '$wr_id'
      and mb_id ='$member[mb_id]' ";
  $file_commnt = sql_fetch($total_commnt);
if ($write[wr_1]){
  if ($is_admin || $file_commnt > 0){
    }else {
  alert ('코멘트를 남기셔야 다운로드가 가능합니다.\n\n잘쓰겠다는 감사의 말씀 부탁드려요. ^^');
    }
  }
}



----------------------------------------------------------------------------------------------

4,

bbs/delete_comment.php 의 상단 검사과정 부분 또는
bbs/delete_comment.php의 하단에있는 내용중 아래코드를

// 사용자 코드 실행
@include_once("$board_skin_path/delete_comment.skin.php");

상단 검사과정있는 위치로 이동한후
스킨/delete_comment.skin.php 에 아래의 코드를 추가합니다.
(두가지 방법중에서 선택하여 한군데만 적용할것)

이방법은 비정상적인 방법으로 코멘트 삭제 명령을 시도시 검사과정입니다.


if ($board[bo_1] =="1"){
$total_commnt  = " select wr_1 from $write_table
    where wr_id = '$write[wr_parent]' ";
  $file_commnt = sql_fetch($total_commnt);
  if (!$is_admin && $file_commnt[wr_1]){ 
  alert ('다운로드시 코멘트 받기가 작동중이므로\n\n작성하신 코멘트를 삭제할수 없습니다.');
    }
 }



다운로드시 코멘트받기  -끝-




※ 로그인 하시면 원본파일을 볼 수 있습니다. ※

0
코멘트 0
자동등록방지 코드
그누보드팁 | 전체게시물 160
안내

포인트안내닫기

  • 글읽기0
  • 글쓰기100
  • 댓글쓰기50
  • 다운로드-500
그누보드팁리스트
번호 제목 글쓴이 날짜 조회 추천
 공지  텍스트 슈퍼맨 웹스터디 12-17 - -
160 파일첨부 +1 링크 슈퍼맨 웹스터디 12-07 5251 0
159 텍스트 +3 슈퍼맨 웹스터디 12-07 4562 0
158 텍스트 +1 슈퍼맨 웹스터디 01-10 5743 0
157 텍스트 슈퍼맨 웹스터디 12-14 5301 0
156 텍스트 링크 슈퍼맨 웹스터디 12-06 7428 0
155 텍스트 링크 슈퍼맨 웹스터디 11-27 5497 0
154 텍스트 링크 슈퍼맨 웹스터디 09-27 6516 0
153 텍스트 슈퍼맨 웹스터디 09-06 5185 0
152 텍스트 +2 링크 슈퍼맨 웹스터디 08-15 5386 1
151 파일첨부 링크 슈퍼맨 웹스터디 07-19 4755 0
150 파일첨부 링크 슈퍼맨 웹스터디 07-12 6567 0
149 파일첨부 링크 슈퍼맨 웹스터디 07-02 6212 0
148 파일첨부 +2 링크 슈퍼맨 웹스터디 06-06 4982 0
147 텍스트 슈퍼맨 웹스터디 04-02 5008 0
146 파일첨부 링크 슈퍼맨 웹스터디 03-28 5154 0
145 파일첨부 링크 슈퍼맨 웹스터디 03-28 5157 0
144 파일첨부 +1 슈퍼맨 웹스터디 03-19 5020 0
143 파일첨부 슈퍼맨 웹스터디 03-13 5157 0
142 텍스트 +4 슈퍼맨 웹스터디 03-12 7150 0
141 텍스트 링크 슈퍼맨 웹스터디 02-15 5550 0