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