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; }
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; }
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); }