첨부파일 다운로드시 코멘트받기 -보완- > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

첨부파일 다운로드시 코멘트받기 -보완- 정보

첨부파일 다운로드시 코멘트받기 -보완-

본문

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

이전글 : http://sir.co.kr/bbs/tb.php/g4_tiptech/1636
이전글은 스크랩 및 여러게시글에서 링크가 걸린문제로 당분간 보존한후 삭제 합니다.

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


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"){
  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작성하신 코멘트를 삭제할수 없습니다.');
    }
 }


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



미리보기는 제공하지 않으며 적용하신후 사용상
문제점 또는 버그발견시 피드백 부탁드립니다.

^^;
추천
2

댓글 25개

플록님 안녕하세요.^^
홈대문에 오프라인 일때문에 바쁘시다고 하시던데 하시는일은 잘 되시는지요?
모쪼록 사업 번창 하시길 바랄께요.^^
고생하셨습니다.

이번에 애써주신 덕분에 아마도 여러 스킨에 아주 다양한 형태로 쓰여지지 않을까 조심스럽게 예상해 봅니다.

저는 내일 오후쯤에 수정해봐야 하겠네요.

^^
가만히 생각해보니 수정된 소스가 뭐가 바뀌고 뭐가 좋아졌는지 보시는 분들이 알까요?

제 생각에는 잘 모르실것 같습니다만........
헐랭이님 조은 팁 넘 감사드려연^*
근데 다른분들 다 잘되시나여? 저는 다운로드는 비정상적인 접근시 차단이 잘되는데연,
코멘트 삭제는 비정상적 접근시 여전히 삭제가 되네영.. bo_1 과 wr_1 이 사용중이라서
bo_3 wr_3 으로 바꾸고 위에 나온 팁그대로 적용했는데 안되네효..;; 저만 그런가여?
저는 그냥 무조건 코멘트 삭제가 불가능하게 하려구 write.skin.php 에서
<input type=hidden name="wr_3" value='1' checked> <=요문장을 삽입했거든여.
이게잘못인지연?
헐랭이님 팁을 적용하시려면 일단 임의로 추가하신 내용들은 주석처리 하시고 위 내용대로만
테스트를 해 보시고 에러가 보이면 질문을 하세요.
그리고, 잘 된다면 된다고 글을 남겨주셔야 다시 소스를 살펴보는 수고를 하지 않으시겠지요?
아래의 상황을 확인해 보실래요.?
1, 게시판설정의 여유필드1에 값이 있는지
2, 글작성시 여유필드1에 값이 들어갔는지

코멘트삭제시 검사과정의 설명입니다.

//게시판설정에서 여유필드1의 값이며 현재설정된 값은 1
if ($board[bo_1] =="1"){
//원글작성시 코멘트 받기를 설정했나? wr_1 에 어떤한 값이라도 있다면 작동함
$total_commnt  = " select wr_1 from $write_table
    where wr_id = '$write[wr_parent]' ";
  $file_commnt = sql_fetch($total_commnt);
//관리자는 제외하고 원글의 wr_1 필드에 값이 존재 한다면 삭제금지
  if (!$is_admin && $file_commnt[wr_1]){ 
  alert ('다운로드시 코멘트 받기가 작동중이므로\n\n작성하신 코멘트를 삭제할수 없습니다.');
    }
 }
멋진 팁이리라 의심치 않습니다.
일단 갈무리해 놓고,
맑은 정신에 살펴봐야 할 것 같습니다.

비몽사몽인지라...
첨부파일 다운로드시 코멘트받기 -보완-
에스아이알에 헐랭이님이 올려주신 팁입니다.
[:SourceStart:]
[:BOX1:]

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

이전글 : http://sir.co.kr/bbs/tb.php/g4_tiptech/1636
이전글은 스크랩 및 여러게시글에…
저도 일단 스크랩 한 후 내일 적용해보려고 합니다.
제 사이트 자료실에 코멘트 달고 가져 가라는데도
너무 안지켜서..
감사합니다.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT