답변 3개
채택된 답변
+20 포인트
6개월 전
포인트 내역에 게시판 id와 wr_id가 기록 되는데 이것을 이용하지않으려는 이유가 뭔가요?
포인트 테이블 외는 구분할 수 있는 방법이 없습니다
포인트 테이블에 내역이 너무 많이 쌓여서 사용하기 꺼려진다면 두가지 방법이 잇겠습니다
1. 회원 테이블 여분필드에 게시판 아이디와 wr_id를 기록해서 이용
2. 게시물 여분필드에 읽은 사람 아이디 누적해서 이용
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
마르스컴퍼니
Expert
6개월 전
* [게시판 스킨 디렉토리]/list.skin.php
1) 상단에 코드 추가 (3 Line 부근)
</p>
<p>// 읽은 글 미리 가져오기</p>
<p>$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;
}
}
}</p>
<p>
2) 제목 출력 부분 변경
</p>
<p><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></p>
<p>
→
</p>
<p><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></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
k
ksoon
6개월 전
코드까지 너무 감사합니다. 이 부분은 쿠키가 없으면 읽음 표시가 안나서 사용안하고 있습니다. 답변은 너무 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인