Example #1
0
function sheets_delete_sheets_for_user(&$user)
{
    $enc_id = AddSlashes($user['id']);
    $sql = "SELECT * FROM Sheets WHERE user_id='{$enc_id}'";
    $more = array('page' => 1, 'per_page' => 100);
    $page_count = null;
    $sheets_count = 0;
    $sheets_deleted = 0;
    $dots_count = 0;
    $dots_deleted = 0;
    while (!isset($page_count) || $page_count >= $more['page']) {
        $rsp = db_fetch_paginated_users($user['cluster_id'], $sql, $more);
        if (!$rsp['ok']) {
            $rsp['sheets_deleted'] = $sheets_deleted;
            $rsp['sheets_count'] = $sheets_count;
            $rsp['dots_deleted'] = $dots_deleted;
            $rsp['dots_count'] = $dots_count;
            return $rsp;
        }
        if (!isset($page_count)) {
            $page_count = $rsp['pagination']['page_count'];
            $sheets_count = $rsp['pagination']['total_count'];
        }
        foreach ($rsp['rows'] as $sheet) {
            $sheet_rsp = sheets_delete_sheet($sheet);
            if ($sheet_rsp['ok']) {
                $dots_count += $sheet_rsp['dots_count'];
                $dots_deleted += $sheet_rsp['dots_deleted'];
                $sheets_deleted++;
            }
        }
        $more['page']++;
    }
    # TO DO: finish cleaning up any export cache directories left hanging
    # around. The delete_sheet function will purge any files but all the
    # zero-padded directories are still in place (20110302/straup)
    return array('ok' => 1, 'sheets_deleted' => $sheets_deleted, 'sheets_count' => $sheets_count, 'dots_deleted' => $dots_deleted, 'dots_count' => $dots_count);
}
Example #2
0
function import_process_data(&$user, &$data, $more = array())
{
    #
    # First do some sanity-checking on the data before
    # we bother to create a sheet.
    #
    $rsp = import_ensure_valid_data($data);
    if (!$rsp['ok']) {
        return $rsp;
    }
    #
    # CAN I HAS MAH SHEET?
    #
    $sheet_rsp = sheets_create_sheet($user, $more);
    if (!$sheet_rsp['ok']) {
        return $sheet_rsp;
    }
    $sheet = $sheet_rsp['sheet'];
    #
    # OMG!!! IT'S FULL OF DOTS!!!!
    #
    $more['skip_validation'] = 1;
    # see above
    $dots_rsp = dots_import_dots($user, $sheet_rsp['sheet'], $data, $more);
    # No soup for sheet! Or is it the other way around...
    if (!$dots_rsp['ok']) {
        sheets_delete_sheet($sheet);
    } else {
        $dots_rsp['sheet'] = $sheet;
        $count_rsp = sheets_update_dot_count_for_sheet($sheet);
        $dots_rsp['update_sheet_count'] = $count_rsp['ok'];
        if ($more['return_dots']) {
            $dots_rsp['dots'] = dots_get_dots_for_sheet($sheet, $sheet['user_id']);
        }
    }
    return $dots_rsp;
}
Example #3
0
}
if (!sheets_can_view_sheet($sheet, $GLOBALS['cfg']['user']['id'])) {
    error_403();
}
#
$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("sheet", $sheet);
# delete this sheet?
if ($is_own) {
    $crumb_key = 'delete-sheet';
    $smarty->assign("crumb_key", $crumb_key);
    if (post_str('delete') && crumb_check($crumb_key)) {
        if (post_str('confirm')) {
            $rsp = sheets_delete_sheet($sheet);
            $smarty->assign('deleted', $rsp);
        }
        if ($rsp['ok']) {
            $redir = urls_sheets_for_user($GLOBALS['cfg']['user']) . "?deleted=1";
            header("location: {$redir}");
            exit;
        }
        $smarty->display('page_sheet_delete.txt');
        exit;
    }
}
# Hey look! At least to start we are deliberately not doing
# any pagination on the 'dots-for-a-sheet' page. We'll see
# how long its actually sustainable but for now it keeps a
# variety of (display) avenues open.