읽기 포인트 사용한 글 list에서 확인방법
본문
읽기포인트 사용해서 읽은 글을 포인트 내역말고 게시판 list에서 구분할 수 있는 방법이 있을까요?
이것저것 해보다 도저히 안나오네요ㅠㅠㅠ
답변 3
포인트 내역에 게시판 id와 wr_id가 기록 되는데 이것을 이용하지않으려는 이유가 뭔가요?
포인트 테이블 외는 구분할 수 있는 방법이 없습니다
포인트 테이블에 내역이 너무 많이 쌓여서 사용하기 꺼려진다면 두가지 방법이 잇겠습니다
1. 회원 테이블 여분필드에 게시판 아이디와 wr_id를 기록해서 이용
2. 게시물 여분필드에 읽은 사람 아이디 누적해서 이용
리스트와 포인트 사용내역에 게시판아이디와 게시글번호를 기록해서 사용유무를 구분해서 리스트에서 사용유무 표기되도록 처리하시면 되실듯 합니다.
* [게시판 스킨 디렉토리]/list.skin.php
1) 상단에 코드 추가 (3 Line 부근)
// 읽은 글 미리 가져오기
$read_articles = array();
if ($is_member) {
$current_list_ids = array();
for ($i=0; $i<count($list); $i++) {
$current_list_ids[] = $list[$i]['wr_id'];
}
if (count($current_list_ids) > 0) {
$sql = " SELECT po_rel_id FROM {$g5['point_table']}
WHERE mb_id = '{$member['mb_id']}'
AND po_rel_table = '{$bo_table}'
AND po_rel_action = '읽기'
AND po_rel_id IN (".implode(',', $current_list_ids).")";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$read_articles[$row['po_rel_id']] = true;
}
}
}
2) 제목 출력 부분 변경
<div class="bo_tit">
<a href="<?php echo $list[$i]['href'] ?>">
<?php echo $list[$i]['icon_reply'] ?>
<?php
if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);
?>
<?php echo $list[$i]['subject'] ?>
</a>
→
<div class="bo_tit">
<?php
// 읽은 글인지 확인
$is_read = isset($read_articles[$list[$i]['wr_id']]) && $read_articles[$list[$i]['wr_id']];
// 제목에 스타일 적용
$subject = $list[$i]['subject'];
if ($is_read) {
$subject = "<span style='color:#888;'>".$subject."</span>";
}
?>
<a href="<?php echo $list[$i]['href'] ?>">
<?php echo $list[$i]['icon_reply'] ?>
<?php
if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);
?>
<?php echo $subject // 수정된 부분 ?>
<?php if ($is_read) { ?><i class="fa fa-check" style="font-size:11px;color:#8BC34A;margin-left:3px;" title="읽은 글"></i><?php } ?>
</a>
답변을 작성하시기 전에 로그인 해주세요.