Example #1
0
function dots_get_dot($dot_id, $viewer_id = 0, $more = array())
{
    # Can has cache! Note this is just the raw stuff
    # from the Dots table and that 'details' get loaded
    # below.
    $cache_key = "dot_{$dot_id}";
    $cache = cache_get($cache_key);
    if ($cache['ok']) {
        $dot = $cache['data'];
    } else {
        # This is the kind of thing that would be set by lib_search
        if ($user_id = $more['dot_user_id']) {
            $user = users_get_by_id($more['dot_user_id']);
        } else {
            $lookup = dots_lookup_dot($dot_id);
            if (!$lookup) {
                return;
            }
            if ($lookup['deleted']) {
                return array('id' => $lookup['dot_id'], 'deleted' => $lookup['deleted']);
            }
            $user = users_get_by_id($lookup['user_id']);
        }
        if (!$user) {
            return;
        }
        $enc_id = AddSlashes($dot_id);
        $enc_user = AddSlashes($user['id']);
        $sql = "SELECT * FROM Dots WHERE id='{$enc_id}'";
        $rsp = db_fetch_users($user['cluster_id'], $sql);
        $dot = db_single($rsp);
        if ($rsp['ok']) {
            cache_set($cache_key, $dot, 'cache locally');
        }
    }
    if ($dot && $viewer_id !== $user['id']) {
        if (!dots_can_view_dot($dot, $viewer_id)) {
            $dot = null;
        }
    }
    if ($dot) {
        $more['load_sheet'] = 1;
        dots_load_details($dot, $viewer_id, $more);
    }
    return $dot;
}
Example #2
0
$dot_id = get_int64('dot_id');
if (!$dot_id) {
    error_404();
}
$dot = dots_get_dot($dot_id, $GLOBALS['cfg']['user']['id']);
if (!$dot) {
    error_404();
}
if ($dot['deleted']) {
    $smarty->display("page_dot_deleted.txt");
    exit;
}
if ($dot['user_id'] != $owner['id']) {
    error_404();
}
if (!dots_can_view_dot($dot, $GLOBALS['cfg']['user']['id'])) {
    error_403();
}
$dot['bookends'] = dots_get_bookends_for_dot($dot, $GLOBALS['cfg']['user']['id']);
// quickly determine if dot is a magical one
$smarty->assign("dot_is_flickr", isset($dot['details']['flickr:id']) && !empty($dot['details']['flickr:id']) ? true : false);
$smarty->assign("dot_is_youtube", isset($dot['details']['youtube:id']) && !empty($dot['details']['youtube:id']) ? true : false);
$smarty->assign("dot_is_vimeo", isset($dot['details']['vimeo:id']) && !empty($dot['details']['vimeo:id']) ? true : false);
$smarty->assign("dot_is_woeid", isset($dot['details']['yahoo:woeid']) && !empty($dot['details']['yahoo:woeid']) ? true : false);
$smarty->assign("dot_is_oam", isset($dot['details']['oam:mapid']) && !empty($dot['details']['oam:mapid']) ? true : false);
$smarty->assign("dot_is_walkingpapers", isset($dot['details']['walkingpapers:scanid']) && !empty($dot['details']['walkingpapers:scanid']) ? true : false);
$smarty->assign("dot_is_foursquare", isset($dot['details']['foursquare:venue']) && !empty($dot['details']['foursquare:venue']) ? true : false);
$is_own = $owner['id'] == $GLOBALS['cfg']['user']['id'] ? 1 : 0;
$smarty->assign("is_own", $is_own);
$smarty->assign_by_ref("owner", $owner);
$smarty->assign_by_ref("dot", $dot);