function set_tracks($cookie_name, &$tracking_ary, $tracks = null, $val = TIMENOW) { global $tracking_topics, $tracking_forums, $user; if (IS_GUEST) { return; } $prev_tracking_ary = $tracking_ary; if ($tracks) { if (!is_array($tracks)) { $tracks = array($tracks => $val); } foreach ($tracks as $key => $val) { $key = (int) $key; $val++; $curr_track_val = !empty($tracking_ary[$key]) ? $tracking_ary[$key] : 0; if ($val > max($curr_track_val, $user->data['user_lastvisit'])) { $tracking_ary[$key] = $val; } elseif ($curr_track_val < $user->data['user_lastvisit']) { unset($tracking_ary[$key]); } } } $overflow = count($tracking_topics) + count($tracking_forums) - COOKIE_MAX_TRACKS; if ($overflow > 0) { arsort($tracking_ary); for ($i = 0; $i < $overflow; $i++) { array_pop($tracking_ary); } } if (array_diff($tracking_ary, $prev_tracking_ary)) { ft_setcookie($cookie_name, serialize($tracking_ary)); } }
/** * Mark read * * @param $type */ function mark_read($type) { if ($type === 'all_forums') { // Update session time DB()->query("\n\t\t\t\tUPDATE " . SESSIONS_TABLE . " SET\n\t\t\t\t\tsession_time = " . TIMENOW . "\n\t\t\t\tWHERE session_id = '{$this->data['session_id']}'\n\t\t\t\tLIMIT 1\n\t\t\t"); // Update userdata $this->data['session_time'] = TIMENOW; $this->data['user_lastvisit'] = TIMENOW; // Update lastvisit db_update_userdata($this->data, array('user_session_time' => $this->data['session_time'], 'user_lastvisit' => $this->data['user_lastvisit'])); // Delete cookies ft_setcookie(COOKIE_TOPIC, ''); ft_setcookie(COOKIE_FORUM, ''); ft_setcookie(COOKIE_MARK, ''); } }