게시물에 관리자가 쓴 코멘트가 있을 경우 리스트에서 표시하기...
본문
안녕하세요.
게시물에 코멘트가 달렸을 때 리스트에서 아래처럼 나오게 하고 있습니다.
코멘트가 있으면 O, 없으면 X...
<?php if ($list[$i]['comment_cnt']) { ?>
O
<?php } else {?>
X
<?php } ?>
그런데 코멘트가 있으면 O가 아니라 관리자가 남긴 코멘트가 있을 경우에만 O가 되게 하고
그외 사람이 코멘트를 남기던가 코멘트 없을 경우에는 X가 되게 하고 싶은데,
방법을 모르겠네요.
<?php if ($w=="c" && $is_admin ) { ?>도 아닌거 같고,
이거와 위에걸 조함해 봐도 제 능력밖이라서...
혹시 방법 아시는분 계시면 답변 부탁드립니다.
감사합니다.
답변 3
foreach ($list as $v)
$ids[] = $v['wr_id'];
$ids = implode(',', $ids);
$sql = "select wr_parent from " . $write_table . " where mb_id = 'admin' and wr_is_comment = 1 and wr_parent in ( $ids ) ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
$wr_parent[] = $row['wr_parent'];
foreach ($list as $v)
$v['comment_cnt'] = in_array($v['wr_id'], $wr_parent) ? 1 : 0;
// 위에 삽입
for ($i=0; $i<count($list); $i++) {
그누보드 기본함수들을 다 몰라서 하드코딩 해볼게요.
관리자 아이디가 admin이라고 가정하고,
function check_cnt_admin($wr_id){
$check = sql_fetch("select count(wr_id) as cnt from {$write_table} where mb_id='admin' and wr_is_comment='1'");
if($check['cnt'] > 0){
return true;
}
return false;
}
위의 함수를 common.lib에 복사하시구요, for문 돌면서 리스트를 가공하는 코드 안에
$list[$i]['check_cnt_admin'] = check_cnt_admin($list[$i]['wr_id']);
붙여넣으신 후,
if($list[$i]['check_cnt_admin']){
// 관리자가 댓글 단 곳
}
대충 요런식으로 됩니다.
앗.. 수정하려다보니 대댓글달려서 수정이 안되네요
function 안에 하나 빼먹었습니다.
$check = sql_fetch("select count(wr_id) as cnt from {$write_table} where mb_id='admin' and wr_is_comment='1'");
이거를
$check = sql_fetch("select count(wr_id) as cnt from {$write_table} where mb_id='admin' and wr_is_comment='1' and wr_parent='{$wr_id}'");
로 고치셔서 붙여넣으시길 바랍니다.