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;
}
Ejemplo n.º 3
0
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);
}