게시물 댓글과 대댓글을 글쓴이와 댓글 쓴 사람만 볼 수 있도록 하려고 합니다.

게시물 댓글과 대댓글을 글쓴이와 댓글 쓴 사람만 볼 수 있도록 하려고 합니다.

QA

게시물 댓글과 대댓글을 글쓴이와 댓글 쓴 사람만 볼 수 있도록 하려고 합니다.

본문

안녕하세요.

제목처럼 댓글과 대댓글을 글쓴이와 댓글 쓴 사람만 열람할 수 있도록 하려고 하는데요.

그누스터디 강좌(https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=129)를 보고 똑같이 적용해봤습니다만

댓글은 정상적으로 작동되는데 대댓글의 경우 출력 되지 않습니다ㅜㅜ

챗gpt로 이것 저것 다 해봤는데 원하는 답을 못 찾아서 이렇게 질문을 드려봅니다.

 

아래는 뷰 코멘트 파일 코드입니다.


<div class="view_com_list">
    <ul class="view_com_list_ul">
    <?php
    $cmt_amt = count($list);
    for ($i=0; $i<$cmt_amt; $i++) {
        if(!$is_admin && $list[$i]['mb_id'] != $member['mb_id'] && $write['mb_id'] != $member['mb_id']) continue;
        $comment_id = $list[$i]['wr_id'];
        $cmt_depth = strlen($list[$i]['wr_comment_reply']) * 20;
        $comment = $list[$i]['content'];
        $comment = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $comment);
        $cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결
        $c_reply_href = $comment_common_url.'&c_id='.$comment_id.'&w=c#bo_vc_w';
        $c_edit_href = $comment_common_url.'&c_id='.$comment_id.'&w=cu#bo_vc_w';
        $is_comment_reply_edit = ($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) ? 1 : 0;
    ?>
        <li class="a_comment" id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>>
            <div class="box">
                <div class="top">
                    <div class="thum"><?php echo get_member_profile_img($list[$i]['mb_id']) ?></div>
                    <div class="name"><?php echo $list[$i]['name'] ?></div>
                    <div class="date"><?php echo $list[$i]['datetime'] ?></div>
                </div>
                <div class="cont">
                    <?php echo $comment ?>
                </div>
                <?php if($is_comment_reply_edit){ ?>
                    <ul class="btn_basic_ul">
                        <?php if ($list[$i]['is_reply']) { ?><li class="btn_basic xsml bd"><a class="ab" href="<?php echo $c_reply_href; ?>" onclick="comment_box('<?php echo $comment_id ?>', 'c'); return false;">답변</a></li><?php } ?>
                        <?php if ($list[$i]['is_edit']) { ?><li class="btn_basic xsml bd"><a class="ab" href="<?php echo $c_edit_href; ?>" onclick="comment_box('<?php echo $comment_id ?>', 'cu'); return false;">수정</a></li><?php } ?>
                        <?php if ($list[$i]['is_del']) { ?><li class="btn_basic xsml bd"><a class="ab" href="<?php echo $list[$i]['del_link']; ?>" onclick="return comment_delete();">삭제</a></li><?php } ?>
                    </ul>
                <?php } ?>
                <span id="edit_<?php echo $comment_id ?>" class="bo_vc_w"></span><!-- 수정 -->
                <span id="reply_<?php echo $comment_id ?>" class="bo_vc_w"></span><!-- 답변 -->
                <input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret") ?>" id="secret_comment_<?php echo $comment_id ?>">
                <textarea id="save_comment_<?php echo $comment_id ?>" style="display:none"><?php echo get_text($list[$i]['content1'], 0) ?></textarea>
            </div>
        </li>
    <?php } ?>
    <?php if ($i == 0) { //댓글이 없다면 ?><p id="bo_vc_empty">등록된 댓글이 없습니다.</p><?php } ?>
    </ul>
    <nav class="pg_wrap" id="cmt_paging"></nav>
</div>

 

어떻게 해야 대댓글까지 정상적으로 보일 수 있을지 조언 좀 얻고 싶습니다!

이 질문에 댓글 쓰기 :

답변 2

li 영역을 아래로 감싸보세요.

 

<?php if($list[$i]['mb_id'] == $member['mb_id'] || $is_admin ){ ?>

// 글 작성자와 현재 로그인한 아이디가 같거나 관리자는 보여짐

<?php } else { ?>

// 같지 않음.

<?php } ?>

애드프로님 댓글 감사드립니다.
기존 코드에 있는 li영역을 알려주신 조건문(참) 부분에 넣으면 될까요?
아니면 기존 li영억은 놔두고 li를 추가해서 감싸는 걸까요?
다시 한 번 답변 부탁드리며 새해 복 많이 받으셔요^^

li 를 감싼다고 생각하시면됩니다.

ul 내에서 li 가 반복되는 형태이기 때문에..

애드프로님 다시 한 번 댓글 감사드립니다.
알려주신 조건문을 아래처럼 li요소를 감싸보니 글쓴이는 자기 자신이 쓴 댓글, 대댓글밖에 보이지가 않습니다. 제가 잘 못 감쌌을까요?


        <?php
        $cmt_amt = count($list);
        for ($i=0; $i<$cmt_amt; $i++) {
            if(!$is_admin && $list[$i]['mb_id'] != $member['mb_id'] && $write['mb_id'] != $member['mb_id']) continue;
            $comment_id = $list[$i]['wr_id'];
            $cmt_depth = strlen($list[$i]['wr_comment_reply']) * 20;
            $comment = $list[$i]['content'];
            $comment = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $comment);
            $cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결
            $c_reply_href = $comment_common_url.'&amp;c_id='.$comment_id.'&amp;w=c#bo_vc_w';
            $c_edit_href = $comment_common_url.'&amp;c_id='.$comment_id.'&amp;w=cu#bo_vc_w';
            $is_comment_reply_edit = ($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) ? 1 : 0;
        ?>
        <?php if($list[$i]['mb_id'] == $member['mb_id'] || $is_admin ){ ?>
            <li class="a_comment" id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-top-color:#e0e0e0"<?php } ?>>
                <div class="box">
                    <div class="top">
                        <div class="thum"><?php echo get_member_profile_img($list[$i]['mb_id']) ?></div>
                        <div class="name"><?php echo $list[$i]['name'] ?></div>
                        <div class="date"><?php echo $list[$i]['datetime'] ?></div>
                    </div>
                    <div class="cont">
                        <?php echo $comment ?>
                    </div>
                    <?php if($is_comment_reply_edit){ ?>
                        <ul class="btn_basic_ul">
                            <?php if ($list[$i]['is_reply']) { ?><li class="btn_basic xsml bd"><a class="ab" href="<?php echo $c_reply_href; ?>" onclick="comment_box('<?php echo $comment_id ?>', 'c'); return false;">답변</a></li><?php } ?>
                            <?php if ($list[$i]['is_edit']) { ?><li class="btn_basic xsml bd"><a class="ab" href="<?php echo $c_edit_href; ?>" onclick="comment_box('<?php echo $comment_id ?>', 'cu'); return false;">수정</a></li><?php } ?>
                            <?php if ($list[$i]['is_del']) { ?><li class="btn_basic xsml bd"><a class="ab" href="<?php echo $list[$i]['del_link']; ?>" onclick="return comment_delete();">삭제</a></li><?php } ?>
                        </ul>
                    <?php } ?>

                    <span id="edit_<?php echo $comment_id ?>" class="bo_vc_w"></span><!-- 수정 -->
                    <span id="reply_<?php echo $comment_id ?>" class="bo_vc_w"></span><!-- 답변 -->

                    <input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret") ?>" id="secret_comment_<?php echo $comment_id ?>">
                    <textarea id="save_comment_<?php echo $comment_id ?>" style="display:none"><?php echo get_text($list[$i]['content1'], 0) ?></textarea>
                </div>
            </li>
            <?php } else { ?>
                <?php if ($i == 0) { //댓글이 없다면 ?><p id="bo_vc_empty">등록된 댓글이 없습니다.</p><?php } ?>
            <?php } ?>
        <?php } ?>

답변을 작성하시기 전에 로그인 해주세요.
전체 54
QA 내용 검색

회원로그인

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