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 _flickr_photos_search_perms_fq($owner_id = 0, $viewer_id = 0, $more = array()) { if ($owner_id && $owner_id == $viewer_id) { return; } # THIS IS NOT AWESOME. PERMISSIONS IN SOLR SHOULD # PROBABLY JUST ALL BE PRE-COMPUTED AND STORED THE # SAME WAY MACHINETAGS ARE.... (20111119/straup) $fq = array(); if ($perms = flickr_photos_permissions_photos_where($owner_id, $viewer_id)) { $count = count($perms); for ($i = 0; $i < $count; $i++) { $perms[$i] = "perms:" . urlencode($perms[$i]); } $fq[] = implode(" OR ", $perms); } if (isset($more['enforce_geoperms'])) { if ($perms = flickr_geo_permissions_photos_where($owner_id, $viewer_id)) { $count = count($perms); for ($i = 0; $i < $count; $i++) { $perms[$i] = "geoperms:" . urlencode($perms[$i]); } $fq[] = implode(" OR ", $perms); } } return $fq; }
function flickr_photos_get_bookends(&$photo, $more = array()) { $defaults = array('viewer_id' => 0); $more = array_merge($defaults, $more); $user = users_get_by_id($photo['user_id']); $cluster_id = $user['cluster_id']; $enc_id = AddSlashes($photo['id']); $enc_user = AddSlashes($photo['user_id']); if ($perms = flickr_photos_permissions_photos_where($user['id'], $more['viewer_id'])) { $str_perms = implode(",", $perms); $extra = " AND perms IN ({$str_perms})"; } # TO DO: INDEXES $sql = "SELECT * FROM FlickrPhotos WHERE user_id = '{$enc_user}' AND id < '{$enc_id}' {$extra} ORDER BY id DESC LIMIT 1"; $rsp = db_fetch_users($cluster_id, $sql); $before = $rsp['rows']; # TO DO: INDEXES $sql = "SELECT * FROM FlickrPhotos WHERE user_id='{$enc_user}' AND id > '{$enc_id}' {$extra} ORDER BY id ASC LIMIT 1"; $rsp = db_fetch_users($cluster_id, $sql); $after = $rsp['rows']; return array('ok' => 1, 'before' => $before, 'after' => $after); }