바뀜

둘러보기로 가기 검색하러 가기
잔글
==== 19~21번째 줄 ====
$cache[$nid]에 값이 설정되지 않은 경우에 가장 최근에 게시물을 읽었던 타임스탬프를 반환합니다. 드루팔 캐시에서 해당 게시물의 타임스탬프를 가져올 수 없다면 history_read($nid)의 리턴값은 0이 됩니다. 초기에 사용자가 게시물에 대한 직접적인 갱신 작업을 수행하지 않으면 기본적으로 $cache[$nid] == 0을 설정합니다.(일반 사용자일 경우에만 이 값으로 설정하는 것 같습니다. 관리자는 이 설정의 영향을 받지 않는 것 같습니다.) 또한 사용자가 해당 게시물 자체를 아예 읽지 않았다면 데이터베이스의 history 테이블에 관련 기록이 저장되지 않았으므로 history_read($nid)의 리턴값은 0입니다. 하지만 사용자가 게시물을 읽었음에도 불구하고 여전히 새로운 게시물로 표시되는 이유는 드루팔이 static cache를 사용하기 때문입니다.
로그인한 사용자가 게시물을 읽으면 데이터베이스의 history 테이블에는 timestamp가 갱신됩니다. 하지만 드루팔 캐시에는 사용자가 게시물을 읽은 timestamp 값이 곧바로 반영되지 않습니다. 앞서 설명한 것처럼 드루팔은 static cache를 사용하기 때문에 동일한 페이지를 요청하면 데이터베이스에 새로운 쿼리를 전송하지 않고 드루팔 캐시에 저장된 timestamp를 가져옵니다.

둘러보기 메뉴