Exemplo n.º 1
0
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));
    }
}
Exemplo n.º 2
0
 /**
  *  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, '');
     }
 }