$sheet = sheets_get_sheet($sheet_id, $GLOBALS['cfg']['user']['id'], array('load_extent' => 1)); if (!$sheet) { error_404(); } if (!sheets_can_view_sheet($sheet, $GLOBALS['cfg']['user']['id'])) { error_403(); } $is_own = $sheet['user_id'] == $GLOBALS['cfg']['user']['id'] ? 1 : 0; # # Ensure that this is something we can export # $format = get_str('format'); if (!$format) { $format = 'csv'; } $map = formats_valid_export_map('key by extension'); if (!isset($map[$format])) { error_404(); } # 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. # (20101025/straup) $more = array('per_page' => $GLOBALS['cfg']['import_max_records'], 'sort' => request_str('_sort'), 'order' => request_str('_order')); $sheet['dots'] = dots_get_dots_for_sheet($sheet, $GLOBALS['cfg']['user']['id'], $more); $bbox = implode(", ", array_values($sheet['extent'])); # valid extras are things like $export_more = array('viewer_id' => $GLOBALS['cfg']['user']['id']); if ($format == "json" && ($cb = get_str("callback"))) { $export_more['callback'] = $cb;
} else { unset($args['page']); $query_args = http_build_query($args); $pagination_url = "{$GLOBALS['cfg']['abs_root_url']}search/?" . $query_args; $page_as_queryarg = 1; if ($args['u']) { unset($args['u']); $query_args = http_build_query($args); $smarty->assign("query_all_url", "{$GLOBALS['cfg']['abs_root_url']}search/?" . $query_args); } } $GLOBALS['smarty']->assign("pagination_url", $pagination_url); $GLOBALS['smarty']->assign("pagination_page_as_queryarg", $page_as_queryarg); $perms_map = dots_permissions_map(); $GLOBALS['smarty']->assign_by_ref('permissions_map', $perms_map); $formats = array_values(formats_valid_export_map()); $GLOBALS['smarty']->assign("export_formats", $formats); $formats_pretty_names = formats_pretty_names_map(); $GLOBALS['smarty']->assign_by_ref("formats_pretty_names", $formats_pretty_names); # create a simplfied object for js $json_fields = array("id", "created", "details", "geohash", "is_interactive", "latitude", "longitude", "user_id", "perms", "sheet_id"); if ($rsp['dots']) { $ddd = array(); foreach ($rsp['dots'] as $dot) { $bb = array(); foreach ($json_fields as $fi) { if (isset($dot[$fi])) { if ($fi == "details") { $_details = array(); foreach ($dot[$fi] as $de) { $_details[] = array('label' => $de[0]['label'], 'value' => $de[0]['value']);