테스트 사이트 - 개발 중인 베타 버전입니다

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

재미니다 1년 전 조회 1,704

안녕하세요.

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

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

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

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

 

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

</p>

<p><div class="view_com_list"></p>

<p>    <ul class="view_com_list_ul"></p>

<p>    <?php</p>

<p>    $cmt_amt = count($list);</p>

<p>    for ($i=0; $i<$cmt_amt; $i++) {</p>

<p>        if(!$is_admin && $list[$i]['mb_id'] != $member['mb_id'] && $write['mb_id'] != $member['mb_id']) continue;</p>

<p>        $comment_id = $list[$i]['wr_id'];</p>

<p>        $cmt_depth = strlen($list[$i]['wr_comment_reply']) * 20;</p>

<p>        $comment = $list[$i]['content'];</p>

<p>        $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);</p>

<p>        $cmt_sv = $cmt_amt - $i + 1; // 댓글 헤더 z-index 재설정 ie8 이하 사이드뷰 겹침 문제 해결</p>

<p>        $c_reply_href = $comment_common_url.'&c_id='.$comment_id.'&w=c#bo_vc_w';</p>

<p>        $c_edit_href = $comment_common_url.'&c_id='.$comment_id.'&w=cu#bo_vc_w';</p>

<p>        $is_comment_reply_edit = ($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) ? 1 : 0;</p>

<p>    ?></p>

<p>        <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 } ?>></p>

<p>            <div class="box"></p>

<p>                <div class="top"></p>

<p>                    <div class="thum"><?php echo get_member_profile_img($list[$i]['mb_id']) ?></div></p>

<p>                    <div class="name"><?php echo $list[$i]['name'] ?></div></p>

<p>                    <div class="date"><?php echo $list[$i]['datetime'] ?></div></p>

<p>                </div></p>

<p>                <div class="cont"></p>

<p>                    <?php echo $comment ?></p>

<p>                </div></p>

<p>                <?php if($is_comment_reply_edit){ ?></p>

<p>                    <ul class="btn_basic_ul"></p>

<p>                        <?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 } ?></p>

<p>                        <?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 } ?></p>

<p>                        <?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 } ?></p>

<p>                    </ul></p>

<p>                <?php } ?></p>

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

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

<p>                <input type="hidden" value="<?php echo strstr($list[$i]['wr_option'],"secret") ?>" id="secret_comment_<?php echo $comment_id ?>"></p>

<p>                <textarea id="save_comment_<?php echo $comment_id ?>" style="display:none"><?php echo get_text($list[$i]['content1'], 0) ?></textarea></p>

<p>            </div></p>

<p>        </li></p>

<p>    <?php } ?></p>

<p>    <?php if ($i == 0) { //댓글이 없다면 ?><p id="bo_vc_empty">등록된 댓글이 없습니다.</p><?php } ?></p>

<p>    </ul></p>

<p>    <nav class="pg_wrap" id="cmt_paging"></nav></p>

<p></div></p>

<p>

 

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

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

답변 2개

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

재미니다
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.'&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 } ?>
[/code]

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

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

 

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

// 같지 않음.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

로그인