php 기반의 일반 게시판에서 새로등록된글/읽은글 표시해주는 기능 구현에 대해..
글쓴이: 망치 / 작성시간: 금, 2006/07/28 - 8:55오전
phpbb 나 drupal 을 보면 새로 등록된 글, 이미 읽은글에 대해 표시를 해줘서 게시물을 골라읽기 편하게 해주는데요.. 구체적으로 어떤식으로 구현돼있는건지 궁금합니다. 지금 0보드 같은 일반보드에 해당 기능을 넣어보려하고 있거든요.
각 게시물마다 읽었을때 DB 에 해당 게시물을 읽은것에 대한 정보를 기록해두는건지.. 아니면 다른 간단한 방법을 사용하는건지 궁금합니다.
단순히 생각하기에 게시물을 읽었을때 기록해두는것이라면 해당 사용자가 가입기간이 길수록, 또는 '모두 읽은것으로 표시' 등등을 했을때 좀 심각할듯한데.. 어떤 방법이 있는지 조언 부탁드립니다..
Forums:
phpbb 소스를 보시는
phpbb 소스를 보시는 것이 편하겠습니다 ㅎㅎ
저도 궁금합니다. drupal 같은 경우 안 읽은 글이 안 사라지고.. phpbb같은 경우 특정 조건 때 사라집니다.
drupal은 지금 보니까
drupal은 지금 보니까 history라는 테이블을 이용하는듯 합니다.
게시물아이디,사용자아이디,타임스탬프
이렇게 해서 row를 구성하고 각 게시물마다 그 유저에 해당하는 row를 가져와봐서 없으면 새글, 있을때 게시물의 최종수정 타임스탬프와 history의 타임스탬프를 비교해 업데이트 된건지 아닌지를 판단하는 듯 합니다.
게시물을 읽으면 history 테이블에 INSERT나 UPDATE를 할테구요.
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
드루팔의 경우
드루팔의 경우 테이블을 하나 만들어서 사용자가 어떤 글타래를 볼 때마다 history라는 테이블에 (사용자ID, 글타래ID, 현재시각) 레코드를 추가 내지 갱신합니다. 그리고는 글타래 목록 표시를 할 때는 그 테이블을 참고해서 새 글타래 여부, 새 댓글의 갯수 등을 알아냅니다. 단 읽지 않은 새 글이 끝도 없이 많아지는 걸 방지하기 위해 마지막 갱신 시점이 한 달 이상 지난 글타래는 새 글타래/댓글 계산에서 제외합니다.
phpbb에서 어떻게 되어 있는지는 모르겠지만, 위 방식을 살짝 응용하면 '모두 읽은 것으로 표시' 기능도 충분히 구현 가능할 겁니다. 가령 사용자가 '모두 읽은 것으로 표시'를 선택할 때마다 (사용자ID, 0, 현재시각) 레코드를 추가 내지 갱신하고, 새 글타래를 찾을 때 글타래ID가 0인 레코드를 우선적으로 고려하고, ...
Drupal 소스에서...
& 이런, 늦었군요 :)
----
$PWD `date`
$PWD `date`
별 수 없이 테이블을
별 수 없이 테이블을 따로 만들어서 각 글에 대한 정보를 기록해둬야하는군요..
일반 보드에 적용하려니.. 음.. 나름대로 대공사(?)가 될것같습니다. ㅡ.,ㅡ;;
어떻게 하면 작업량을 최소화 하면서 효과적으로 적용될지 고민해봐야겠습니다. 흐으..
조언 감사드립니다.
---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/
댓글 달기