읽기 포인트 사용한 글 list에서 확인방법 채택완료

읽기포인트 사용해서 읽은 글을 포인트 내역말고 게시판 list에서 구분할 수 있는 방법이 있을까요?

이것저것 해보다 도저히 안나오네요ㅠㅠㅠ

답변 3개

채택된 답변
+20 포인트

포인트 내역에 게시판 id와 wr_id가 기록 되는데 이것을 이용하지않으려는 이유가 뭔가요?

포인트 테이블 외는 구분할 수 있는 방법이 없습니다

 

포인트 테이블에 내역이 너무 많이 쌓여서 사용하기 꺼려진다면 두가지 방법이 잇겠습니다

1. 회원 테이블 여분필드에 게시판 아이디와 wr_id를 기록해서 이용

2. 게시물 여분필드에 읽은 사람 아이디 누적해서 이용

 

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

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

* [게시판 스킨 디렉토리]/list.skin.php

1) 상단에 코드 추가  (3 Line 부근)

Copy
// 읽은 글 미리 가져오기

$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) 제목 출력 부분 변경

Copy
<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>

Copy
<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>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

코드까지 너무 감사합니다. 이 부분은 쿠키가 없으면 읽음 표시가 안나서 사용안하고 있습니다. 답변은 너무 감사합니다.

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

리스트와 포인트 사용내역에 게시판아이디와 게시글번호를 기록해서 사용유무를 구분해서 리스트에서 사용유무 표기되도록 처리하시면 되실듯 합니다.

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

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

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

로그인
🐛 버그신고