function privatesquare_checkins_for_user(&$user, $more = array())
{
    $cluster_id = $user['cluster_id'];
    $enc_user = AddSlashes($user['id']);
    $sql = "SELECT * FROM PrivatesquareCheckins WHERE user_id='{$enc_user}'";
    if (isset($more['when'])) {
        list($start, $stop) = datetime_when_parse($more['when']);
        $enc_start = AddSlashes(strtotime($start));
        $enc_stop = AddSlashes(strtotime($stop));
        $sql .= " AND created BETWEEN '{$enc_start}' AND '{$enc_stop}'";
    } else {
        if (isset($more['venue_id'])) {
            $enc_venue = AddSlashes($more['venue_id']);
            $sql .= " AND venue_id='{$enc_venue}'";
        } else {
            if (isset($more['locality'])) {
                $enc_locality = AddSlashes($more['locality']);
                $sql .= " AND locality='{$enc_locality}'";
            }
        }
    }
    $sql .= " ORDER BY created DESC";
    $rsp = db_fetch_paginated_users($cluster_id, $sql, $more);
    if (!$rsp['ok']) {
        return $rsp;
    }
    $count = count($rsp['rows']);
    for ($i = 0; $i < $count; $i++) {
        privatesquare_checkins_inflate_extras($rsp['rows'][$i], $more);
    }
    return $rsp;
}
function flickr_contacts_for_user(&$user, $more = array())
{
    $cluster_id = $user['cluster_id'];
    $enc_user = AddSlashes($user['id']);
    # FIX ME: dates for when the relationship was created
    # ...or at least some sort of ordering
    # FIX ME: photo count
    $sql = "SELECT * FROM FlickrContacts WHERE user_id='{$enc_user}'";
    return db_fetch_paginated_users($cluster_id, $sql, $more);
}
function flickr_faves_for_user(&$user, $more = array())
{
    $defaults = array('viewer_id' => 0);
    $more = array_merge($defaults, $more);
    $cluster_id = $user['cluster_id'];
    $enc_user = AddSlashes($user['id']);
    # TO DO: PERMISSIONS
    $extra = "";
    # TO DO: INDEXES
    $sql = "SELECT * FROM FlickrFaves WHERE user_id='{$enc_user}'";
    if ($owner = $more['by_owner']) {
        $enc_owner = AddSlashes($owner['id']);
        $sql .= " AND owner_id='{$enc_owner}'";
    }
    $sql .= " {$extra} ORDER BY date_faved DESC";
    return db_fetch_paginated_users($cluster_id, $sql, $more);
}
function _backfill_db_users_shard($cluster_id, $sql, $callback, $more = array())
{
    $page_count = null;
    $total_count = null;
    $per_page = $more['per_page'] ? $more['per_page'] : 1000;
    $args = array('per_page' => $per_page, 'page' => 1);
    while (!isset($page_count) || $page_count >= $args['page']) {
        $rsp = db_fetch_paginated_users($cluster_id, $sql, $args);
        if (!$rsp['ok']) {
            break;
        }
        if (!isset($page_count)) {
            $page_count = $rsp['pagination']['page_count'];
            $total_count = $rsp['pagination']['total_count'];
        }
        foreach ($rsp['rows'] as $row) {
            call_user_func_array($callback, array($row));
            backfill_tick();
        }
        $args['page']++;
    }
}
function flickr_photos_archives_for_user_and_range(&$user, $start, $end, $more = array())
{
    $defaults = array('viewer_id' => 0);
    $more = array_merge($defaults, $more);
    $date_col = $more['context'] == 'posted' ? 'dateupload' : 'datetaken';
    $cluster_id = $user['cluster_id'];
    $enc_user = AddSlashes($user['id']);
    $enc_start = AddSlashes($start);
    $enc_end = AddSlashes($end);
    # TO DO: indexes probably...
    $sql = "SELECT * FROM FlickrPhotos WHERE user_id='{$enc_user}' AND `{$date_col}` BETWEEN";
    $sql .= " '{$enc_start}' AND '{$enc_end}'";
    if ($perms = flickr_photos_permissions_photos_where($user['id'], $more['viewer_id'])) {
        $str_perms = implode(",", $perms);
        $sql .= " AND perms IN ({$str_perms})";
    }
    $sql .= " ORDER BY `{$date_col}` ASC";
    $rsp = db_fetch_paginated_users($cluster_id, $sql, $more);
    $rsp['date_range'] = "{$start};{$end}";
    $rsp['date_column'] = $date_col;
    return $rsp;
}
Example #6
0
function sheets_sheets_for_user($user, $viewer_id = 0, $more = array())
{
    # CACHING: pagination makes caching cry
    $enc_id = AddSlashes($user['id']);
    $sql = "SELECT * FROM Sheets WHERE user_id='{$enc_id}'";
    if ($user['id'] != $viewer_id) {
        $sql .= " AND count_dots_public > 0";
    }
    $order_by = 'created';
    $order_sort = 'DESC';
    # check $args for alternate sorting
    $order_by = AddSlashes($order_by);
    $order_sort = AddSlashes($order_sort);
    $sql .= " ORDER BY {$order_by} {$order_sort}";
    $rsp = db_fetch_paginated_users($user['cluster_id'], $sql, $more);
    $sheets = array();
    if ($rsp['ok']) {
        foreach ($rsp['rows'] as $row) {
            sheets_load_details($row, $viewer_id, array('load_extent' => 1));
            $sheets[] = $row;
        }
    }
    return $sheets;
}
Example #7
0
function dots_get_dots_for_user(&$user, $viewer_id = 0, $more = array())
{
    # CACHING: is made sad by pagination...
    $enc_id = AddSlashes($user['id']);
    $sql = "SELECT * FROM Dots WHERE user_id='{$enc_id}'";
    if ($viewer_id !== $user['id']) {
        $sql = _dots_where_public_sql($sql, 1);
    }
    $order_by = 'id';
    $order_sort = 'DESC';
    # check $args here for additioning sorting
    $order_by = AddSlashes($order_by);
    $order_sort = AddSlashes($order_sort);
    $sql .= " ORDER BY {$order_by} {$order_sort}";
    $rsp = db_fetch_paginated_users($user['cluster_id'], $sql, $more);
    $dots = array();
    $even_more = array('load_sheet' => 1);
    foreach ($rsp['rows'] as $dot) {
        dots_load_details($dot, $viewer_id, $even_more);
        $dots[] = $dot;
    }
    return $dots;
}
function flickr_photos_for_user(&$user, $more = array())
{
    $defaults = array('viewer_id' => 0);
    $more = array_merge($defaults, $more);
    $cluster_id = $user['cluster_id'];
    $enc_user = AddSlashes($user['id']);
    $extra = array();
    if ($perms = flickr_photos_permissions_photos_where($user['id'], $more['viewer_id'])) {
        $str_perms = implode(",", $perms);
        $extra[] = "perms IN ({$str_perms})";
    }
    $extra = implode(" AND ", $extra);
    if (strlen($extra)) {
        $extra = " AND {$extra}";
    }
    $sql = "SELECT * FROM FlickrPhotos WHERE user_id='{$enc_user}' {$extra} ORDER BY dateupload DESC";
    if (isset($more['with'])) {
        # Here, we are asking for a the page which a particular photo occurs in a person's stream, which
        # means we'll be passing in the determining the page number ourselves. We do this by figuring out
        # how many photos are before this one in the stream and then dividing.
        $photo = flickr_photos_get_by_id($more['with']);
        $can_see_photo = $photo ? flickr_photos_permissions_can_view_photo($photo, $GLOBALS['cfg']['user']['id']) : false;
        if ($can_see_photo) {
            # The only reason we need this is for spill messing with per-page amounts
            $pagination_more = $more;
            $pagination_more['just_pagination'] = 1;
            $pagination = db_fetch_paginated_users($cluster_id, $sql, $pagination_more);
            $offset_where = " AND dateupload >= '{$photo['dateupload']}'";
            $offset_sql = "SELECT COUNT(*) FROM FlickrPhotos WHERE user_id='{$enc_user}' {$extra} {$offset_where} ORDER BY dateupload DESC";
            $ret = db_fetch_users($cluster_id, $offset_sql);
            if ($ret['ok']) {
                $offset_count = intval(array_pop($ret['rows'][0]));
                $per_page = isset($more['per_page']) ? max(1, $more['per_page']) : $GLOBALS['cfg']['pagination_per_page'];
                $page = ceil($offset_count / $per_page);
                if ($page > $pagination['page_count']) {
                    $page--;
                }
                $more['page'] = $page;
            }
        }
    }
    return db_fetch_paginated_users($cluster_id, $sql, $more);
}