바뀜

둘러보기로 가기 검색하러 가기
잔글
$timestamp는 게시물을 읽은 마지막 시각입니다. 만약 $timestamp > HISTORY_READ_LIMIT 조건이 성립한다면 30일 이전의 타임스탬프 값(HISTORY_READ_LIMIT) 보다 큰 $timestamp의 값을 가진 게시물은 'new' 상태로 표시합니다. 따라서 30일 이후에는 $cache[$nid] == 0 && $timestamp > HISTORY_READ_LIMIT 조건이 성립하지 않으므로 게시물의 상태를 더 이상 'new'로 표시하지 않습니다. 참고로 앞에서 설명한 history_cron 함수는 데이터베이스의 history 테이블에서 timestamp < HISTORY_READ_LIMIT인 투플을 삭제합니다
특정 이벤트가 발생했을 때 드루팔에 저장된 timestamp(사용자가 게시물을 읽은 시각)가 갱신됩니다. 이벤트는 사용자가 포럼에 새로운 글을 작성하거나 새로운 게시물로 표시된 포스트에 댓글을 작성하면 작성했을 때를 의미합니다. 즉 게시물에 대한 갱신 작업이 발생해야 history_write 함수 호출 및 데이터베이스에 새로운 쿼리를 전송하기 때문에 드루팔 캐시에 저장된 timestamp 값도 갱신되어 갱신됩니다. 따라서 더 이상 게시물의 상태가 'new'로 표시되지 않습니다. 또한  사용자가 새로운 게시물을 이미 읽었고 관리자 모드에서 페이지에서 관리자가 드루팔의 모든 캐시를 비울 경우에도 사용자가 새로운 게시물을 이미 읽었다면 더 이상 게시물의 상태가 'new'로 표시되지 않습니다. 왜냐하면 22번째 줄의 $cache[$nid] == 0 && $timestamp > HISTORY_READ_LIMIT 조건에서 $cache[$nid]의 값은 0이 아니라 실제 타임스탬프가 저장되기 때문에 조건식은 거짓이 되기 때문입니다.
=== HistoryController.php ===

둘러보기 메뉴