미채택 완료

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

안녕하세요.

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

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

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

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

 

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

Copy
<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.'&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;

    ?>

        <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개 / 댓글 2개

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

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

답변에 대한 댓글 1개

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

[code]
<?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;
?>
<?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 } ?>
[/code]

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

 

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

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

<?php } else { ?>

// 같지 않음.

<?php } ?>

답변에 대한 댓글 1개

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

답변을 작성하려면 로그인이 필요합니다.