Below is a method to determine if a user has visited a page on your site within the last four weeks at login, and if not, remind them what a wonderful page it is.
You can accomplish exactly that by calling the following function from hook_login():
/*** Check if a site url has been visited in a specified interval.** @param $uid The user ID of the user to check.* Example: 200 ** @param $path The internal Drupal path.* Example: 'node/1' or 'mypage'** @param $interval An interval MySQL understands* Example: '5 DAY' or '5 WEEK' (note value is not plural)*/function check_page_visited_in_time_interval ($uid, $path, $interval) { if (module_exists('statistics')) { // Original SQL $sql = 'SELECT timestamp FROM `accesslog` WHERE uid = $uid AND path = $path AND `timestamp` > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL $interval));';
$date = date_create(); date_modify($date, '-'.$interval); $interval = $date->format('U');
$result = db_query(" SELECT timestamp FROM accesslog WHERE uid = :uid AND path = :path AND timestamp > :interval", array(':uid'=>$uid, ':path'=>$path, ':interval'=>$interval))->fetchAll(); foreach($result as $r) { $time[$r->timestamp] = $r->timestamp; } $rowcount = count($time); if ($rowcount > 0) { return TRUE; } } return FALSE;}?>
