코멘트에 비공개 옵션을 사용하기(계층포함) > 그누4 팁자료실

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

그누4 팁자료실

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

코멘트에 비공개 옵션을 사용하기(계층포함) 정보

코멘트에 비공개 옵션을 사용하기(계층포함)

본문

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

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

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

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

코멘트에 비공개 옵션을 사용하기[계층(답글) 코멘트포함]하기 이며
아래의 순서대로 따라서 해주시기 바랍니다.

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

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

2,
사용하고자하는 게시판스킨/view_comment.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_9']=="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_9']=="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_9']=="on") {
?>
<input style='display:none;' id='save_comment_<?=$comment_id?>_wr_9' value='<?=$list[$i][wr_9]?>'>
<? } } ?>
<?
if ($member['mb_id']) {
if ($board['bo_9']=="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_9']=="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_9']=="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_9']=="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_9] =="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>";
}
  }
  }
 }
}
?>


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


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

댓글 17개

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

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

이팁을 사용하시는 분은 사용중,사용후 피드백과 추천을 의무화 시킵니다.
안그러면 차후~부터는 국물도 없습니다.^^  그럼 전 꿈나라로 갑니다.
ㅎㅎ... 너무 수고 많으셨습니다. 새로운 기능에 대한 고민이 있는데 그것도 올려보렵니다.

천상재회님/헐랭이님, 그리고 몇분 도움을 많이 주신 분들의 경우 홍보가 꼭 필요한
사이트 만드심 알려주세요. 링크 걸어드립니다. ㅋㅋ
원인을 찾았습니다.
<textarea id='save_comment_<?=$comment_id?>' style='display:none;'>
<?
if ($member['mb_id']) {
if ($board['bo_9']=="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) {
?>
 <?=get_text($list[$i][wr_content], 0)?>
<?
 }
 else
{
?>
 이코멘트는 비공개 글 입니다.
<?
 }
}
else
{
?>
<?=get_text($list[$i][wr_content], 0)?>
<?
}
}//회원끝
else
{
if ($board['bo_9']=="on" && $list[$i]['wr_9']=="on") {
?>
 이코멘트는 비공개 글 입니다.
<?
 }
 else
{
?>
<?=get_text($list[$i][wr_content], 0)?>
<?
 }
}
?>
</textarea></td>

===================================

위코드를 아래처럼 수정해 주세요. 원글은 수정을 해두겠습니다.

<?
if ($member['mb_id']) {
if ($board['bo_9']=="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_9']=="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>
감사합니다. 헐랭이님 덕분에 그누보드가 점점 더 풍성해 지는거 같습니다.
제로보드와 달리 그누보드는 엄청나게 다양한 개발이 가능해지는거 같아요.
오늘 사용자가 reporting 해준 것이 비밀코멘트에 글쓴이가 비밀글을 달으면 비밀코멘트
작성자가 글쓴이의 비밀코멘트를 읽을 수 없다고 합니다 (좀 헷갈리는 표현이죠??..ㅋㅋ)

글 - 비밀코멘트(작성자 a) - 비밀코멘트(글쓴이)

a가 자신의 비밀코멘트 밑에 붙은 글쓴이의 비밀코멘트를 읽을 수 없습니다.
이때는 글쓴이가 비밀코멘트를 달지 못하게 하던지 하나요? ... 나중에 한번 코드를 잘
보구 알려드릴께요.
테스트 할때엔 위 상황에서 잘되었는데 이상하네요.
지금은 바쁜일 때문에 어렵고 시간날때에 확인해 보겠습니다.
그리고 글쓴이가 자신의 코멘트에 비밀글 버튼을 눌러서 글쑤는 것도 좀 우스운것
같고 비밀코멘트 밑에는 무조건 비밀코멘트가 되어야 할 것 같아서 글쓴이는
비밀글 코멘트를 달 수 없게 수정을 했습니다. 그랬더니 코드가 많이 엉키는거
같아서 포기했어요. -..-a

<?
if ($member['mb_id']) {
 if ($board['bo_9']=="on") {
    if ($member['mb_id']==$write['mb_id']) { ?>
      <input type=hidden name="wr_9" id="wr_9" value="on">
<?    } else { ?>
      <input type=checkbox name="wr_9" id="wr_9" value="on"> 비밀글
<? } } } ?>
비밀코멘트가 검색되는 것을 방지하기 위해서 ... bbs/search.php의 112라인을 아래와 같이
수정했습니다. 참조하시기 바랍니다.

$sql_search = $str . " and wr_option not like '%secret%' and wr_9 not like 'on' "; // 비밀글은 제외
7-2
if ($board[bo_9] =="on" && $write['wr_8']=="on")

이부분이 오류의 원인으로 생각되네요.

wr_8은 무관한 필드이고... 테스트를 해보니 $write['wr_8']에 값이 나오지 않는거 같네요.
write_comment_update.skin.php를 수정해 주시면 됩니다.

// 이게시판에서 코멘트 비밀옵션 사용 by 헐랭이
if ($member['mb_id']) {
// if ($board[bo_9] =="on" && $write['wr_9']=="on") -- $write['wr_9'] 값이 없슴
if ($board[bo_9] =="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' ";

// 본인이 비밀글 여부를 설정하는 경우에만... 비밀글이 되게 하였슴
    if ($reply_array2[wr_9] =="on"){
    $sql3 = " update $write_table set 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>";
}
  }
  }
 }
}
전체 17 |RSS
그누4 팁자료실 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 추천 조회
  • 게시물이 없습니다.

회원로그인

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