코멘트에 비공개 옵션사용(계층+원글에서 제어) > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

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

코멘트에 비공개 옵션사용(계층+원글에서 제어) 정보

코멘트에 비공개 옵션사용(계층+원글에서 제어)

본문

코멘트에 비공개 옵션 사용하기 업그레이드2 버전 이며
그동안 1차 버전에서 불당님과 izen님의 그리고 잠못주무시면서 까지
도움주신 천상재회님의 피드백을 참고하여 업그레이드가 되었습니다.
더불어 격려해주신 sir 회원분들과 도움주신 천상재회님께 감사드립니다.

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

코멘트 수정시 br이 들어가서 이전 코멘트가 아래로 쳐지던 현상을 수정 하였습니다.
최종 수정일 : 2006-12-04 21:30

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

이방법은 아래의 방법과는 조금 다릅니다,
코멘트에 비공개 옵션을 사용하기[계층(답글) 코멘트포함]하기 와
원글에서 글작성시 코멘트 비공개사용을 컨트롤 하는 기능이며
아래의 순서대로 따라서 해주시기 바랍니다.

1,
이기능을 사용하고자 하는 게시판환경설정의 여유필드 8번에
on 이라고 넣어준후 저장 합니다. bo_8

이기능을 사용하기 위해선 게시판의 여유필드 3개를 사용 합니다.
wr_8, wr_9 ,wr_10 이며 필요시 수정 하세요.

2,
사용하고자하는 게시판스킨/view_comment.skin.php 와 write.skin.php 를
문제발생시 복구를 위하여 원본을 따로 저장을 해둔후 에디터로 열어서 아래의
항목대로 소스를 수정 및, 추가 합니다.

3,
view_comment.skin.php 에서
 <!-- 코멘트 출력 -->
<font class="mystyle"><?=$list[$i][content]?></font> <- 이코드를 찾은후 아래의
코드로 교체 합니다.


 <!-- 코멘트 출력 -->
<? if ($list[$i]['wr_9']=="on") { $c_checked = "<span style='color:red; cursor: pointer;' class='small' title='비공개 코멘트 입니다.'>(?)</span>";}else{ $c_checked = "";}?>
<?=$c_checked?>
<font class="mystyle">
<?
if ($member['mb_id']) {
if ($board['bo_8']=="on" && $write['wr_8']=="on" && $list[$i]['wr_9']=="on") {
if ($member['mb_id'] == $write['mb_id'] || $list[$i]['mb_id'] == $member['mb_id'] || $list[$i]['wr_10'] == $member['mb_id'] || $is_admin) {
?>
 <?=$list[$i][content]?>
<?
 }
 else
{
?>
 이코멘트는 비공개 글 입니다.
<?
 }
}
else
{
?>
 <?=$list[$i][content]?>
<?
}
}//회원끝 비회원시작(비회원일경우 문제가 생겨서 분리를 하였음 ㅠㅠ)
else
{
if ($board['bo_8']=="on" && $write['wr_8']=="on" && $list[$i]['wr_9']=="on") {
?>
 이코멘트는 비공개 글 입니다.
<?
 }
 else
{
?>
 <?=$list[$i][content]?>
<?
 }
}
?>
</font>

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

4,
위코드를 적용한후 조금 내려간후 아래의 코드를 찾아서

<textarea id='save_comment_<?=$comment_id?>' style='display:none;'><?=get_text($list[$i][wr_content], 0)?></textarea></td>

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


<?
if ($member['mb_id']) {
if ($board['bo_8']=="on" && $write['wr_8']=="on") {
?>
<input style='display:none;' id='save_comment_<?=$comment_id?>_wr_9' value='<?=$list[$i][wr_9]?>'>
<? } } ?>
<?
if ($member['mb_id']) {
if ($board['bo_8']=="on" && $write['wr_8']=="on" && $list[$i]['wr_9']=="on") {
if ($member['mb_id'] == $write['mb_id'] || $list[$i]['mb_id'] == $member['mb_id'] || $list[$i]['wr_10'] == $member['mb_id'] || $is_admin) {
?>
 <textarea id='save_comment_<?=$comment_id?>' style='display:none;'><?=get_text($list[$i][wr_content], 0)?></textarea>
<?
 }
 else
{
?>
 <textarea id='save_comment_<?=$comment_id?>' style='display:none;'> 이코멘트는 비공개 글 입니다. </textarea>
<?
 }
}
else
{
?>
 <textarea id='save_comment_<?=$comment_id?>' style='display:none;'><?=get_text($list[$i][wr_content], 0)?></textarea>
<?
}
}//회원끝
else
{
if ($board['bo_8']=="on" && $write['wr_8']=="on" && $list[$i]['wr_9']=="on") {
?>
 <textarea id='save_comment_<?=$comment_id?>' style='display:none;'> 이코멘트는 비공개 글 입니다. </textarea>
<?
 }
 else
{
?>
 <textarea id='save_comment_<?=$comment_id?>' style='display:none;'><?=get_text($list[$i][wr_content], 0)?></textarea>
<?
 }
}
?>
</td>

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


5,
위 코드를 추가한후 코멘트 입력창 부분에 있는 아래의 코드를 찾은후

    <span style="cursor: pointer;" onclick="textarea_decrease('wr_content', 10);"><img src="<?=$board_skin_path?>/img/up.gif"></span>
    <span style="cursor: pointer;" onclick="textarea_original('wr_content', 10);"><img src="<?=$board_skin_path?>/img/start.gif"></span>
    <span style="cursor: pointer;" onclick="textarea_increase('wr_content', 10);"><img src="<?=$board_skin_path?>/img/down.gif"></span>


위의 코드 바로 아래에 다음의 코드를 추가 합니다.


<?
if ($member['mb_id']) {
  if ($board['bo_8']=="on" && $write['wr_8']=="on") { 
?>
<input type=checkbox name="wr_9" id="wr_9" value="on"> 비밀글
<? } } ?>

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

6,
위코드를 추가한후 하단의 아래의 스크립트를 찾아서
        // 코멘트 수정
        if (work == 'cu')
        {
            document.getElementById('wr_content').value = document.getElementById('save_comment_' + comment_id).value;
            if (typeof char_count != 'undefined')
                check_byte('wr_content', 'char_count');
        }


위의 코드를 아래처럼 바꾸어 줍니다.

        // 코멘트 수정
        if (work == 'cu')
        {
            document.getElementById('wr_content').value = document.getElementById('save_comment_' + comment_id).value;
  <?
if ($member['mb_id']) {
  if ($board['bo_8']=="on" && $write['wr_8']=="on") {
  ?>
if(document.getElementById('save_comment_' + comment_id + '_wr_9').value=='on') {
document.getElementById('wr_9').checked = true;
  }
  <? } } ?>
            if (typeof char_count != 'undefined')
                check_byte('wr_content', 'char_count');
        }


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

7,
이제 게시판 스킨폴더안에 사용자 옵션용 스킨에 코드를 추가 할 것입니다.
스킨에 따라서 아래의 이름으로 된 파일이 없다면 이름을 똑같이 만들어서
스킨안으로 넣어만 주면 됩니다.

7-1
write_comment_update.head.skin.php 의 내용을 아래처럼 넣어 주세요.

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
//비밀 코멘트를 사용하기 위한 변수를 재설정함 by 헐랭이
$comment_ids2 =$comment_id;
?>


7-2
write_comment_update.skin.php 의 내용을 아래처럼 넣어 주세요.

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 이게시판에서 코멘트 비밀옵션 사용 by 헐랭이
if ($member['mb_id']) {
if ($board[bo_8] =="on" && $write['wr_8']=="on")
{
if ($w == "c")
 {
    if ($comment_ids2)
    {
//원코멘트의 값을 가져온후 준비
    $sql2 = " select mb_id, wr_9, wr_id from $write_table
                  where wr_id = '$comment_ids2' ";
        $reply_array2 = sql_fetch($sql2);
// 원코멘트가 비밀이라면 답코멘트에서 비밀로 했더라도 이것저것 머리아프니깐
// 답코멘트도 강제로 비밀처리를 하면서 원댓글 작성자에게 열람 권한도 줘버리장ㅋㅋㅋ
if ($reply_array2[wr_9] =="on"){
  $sql3 = " update $write_table
              set wr_9 = '$reply_array2[wr_9]',
  wr_10 = '$reply_array2[mb_id]'
            where wr_id = '$comment_id' ";
    sql_query($sql3);
 // 안내 메세지는 필요 없으면 주석처리 하세요. by 헐랭이
  echo "<script language='javascript'>";
echo " alert('===============안내 메세지 입니다.==============\\n\\n원댓글이 비공개 이므로 답변도 비공개로 등록하면서\\n\\n원댓글 작성자에게 열람이 가능하게 권한을 줍니다.\\n\\n이코멘트의 비공개 해제는 수정모드에서 해제 하세요.');";
    echo "</script>";
}
  }
  }
 }
}
?>

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

8,
게시판스킨의 write.skin.php 에서 글작성시 링크가 들어가는부분
<? if ($is_link) { ?>
<? for ($i=1; $i<=$g4[link_count]; $i++) { ?>
<tr>
    <td width="15%" height="30" align="center"><span class=w_title>링크 #<?=$i?></span></td>


위의 코드 바로위에 아래의 코드를 추가해 줍니다.


<?
if ($member['mb_id']) {
 if ($board['bo_8']=="on") {
//글수정시 이전값을 가져옴
  if ($write['wr_8']=="on") {
  $s_checked =" checked";
 }else{
$s_checked ="";
}
?>
<tr>
    <td width="15%" height="30" align="center"><span class=w_title>댓글비공개</span></td>
    <td width="1" valign="bottom"><img src="<?=$board_skin_path?>/img/gray_line.gif" width="1" height="10"></td>
    <td width="84%" class=w_padding><input type=checkbox name="wr_8" value="on"<?=$s_checked?>> 이글의 코멘트에서 비밀글을 사용하게 합니다.</td>
</tr>
<tr>
    <td height="1" background="<?=$board_skin_path?>/img/dot_bg.gif" colSpan=10 align=middle></td>
</tr>
<? } } ?>

이부분은 스킨마다 조금씩 다르므로 참고 바랍니다.


--------------------------끝---------------


이렇게 하면 계층까지 포함하여 코멘트에서 비밀글을 사용하면서
원글작성시에 제어를 할수가 있게 됩니다.
먼길 오시느라 수고 하셨습니다. 그동안 도움주신 sir 회원여러분 및
천상재회님께 감사 드립니다.^^
추천
7

댓글 16개

힌트: 이기능을 응용하여 살을쬐끔더 붙이면 경매 시스템을 만들수 있습니다...설마?
이기능을 사용시 가능하면 RSS 차단및 (회원전용)으로 하십시요.

-후기-
모든걸 팽개치고 약3일동안 여기에 매달렸습니다.ㅋ
따라서 라이쎈쓰 를  붙입니다.ㅡ,.ㅡ;

이팁을 사용하시는 분은 사용중,사용후 피드백과 추천을 의무화 시킵니다.
안그러면 차후~부터는 국물도 없습니다.^^  그럼 전 꿈나라로 갑니다.
^^
해결하셨군요.

헐랭이님의 노고로 인해서 이제 이 팁을 적용하면 경매게시판, 직거래게시판, 쇼핑 등 대부분의 스킨이 보다 완벽에 가깝게 제작이 될걸로 보여집니다.

정말 수고하셨습니다.
푹 쉬십시오.

^^
예... 이것을 생각하게 된 목적이 카페의 직거래 게시판 때문 입니다. 쇼핑에서도 아주
유용하게 쓰일거 같아요. 그누의 힘은 이렇게 함께 만들어가는 소스코드 때문이 아닌가
생각합니다. 홧팅~! 추천 한방 때립니다. ㅋㅋ
헐랭이님... 추가 수정을 하나 더 부탁드려도 될까요???

코멘트 비밀글이 하나라도 붙은 경우... 글쓴이가 비밀글 코멘트를 원글에서 맘대로 풀어버리지
못해야 해야 할 것 같습니다.
불당님의 의견을보고 생각해보니 필요성이 있는듯 하네요.^^
이미 비밀코멘트가 하나라도 달려다면 원글 수정에서 풀어 버리면 안되겠네요.
전체 16 |RSS
그누4 팁자료실 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 추천 조회
  • 게시물이 없습니다.

회원로그인

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