function api_dots_dotsForUser()
{
    // these keys not important
    $skipKeys = array("details", "details_json", "index_on", "details_listview", "type_of_co");
    $u = request_str('user');
    $owner = users_get_by_id($u);
    $output = array();
    if ($owner) {
        $dots = dots_get_dots_for_user($owner);
        // please say there is a better way
        if ($dots) {
            foreach ($dots as &$row) {
                $a = array();
                foreach ($row as $k => $v) {
                    if (!in_array($k, $skipKeys)) {
                        $a[$k] = $v;
                    }
                }
                $output[] = $a;
            }
        }
    }
    if (count($output)) {
        api_output_ok($output);
    } else {
        api_output_error();
    }
}
<?php

#
# $Id$
#
#################################################################
include "include/init.php";
loadlib("geo_geocode");
#################################################################
$owner = users_ensure_valid_user_from_url();
$more = array('page' => get_int64('page'));
$dots = dots_get_dots_for_user($owner, $GLOBALS['cfg']['user']['id'], $more);
$smarty->assign_by_ref('owner', $owner);
$smarty->assign_by_ref('dots', $dots);
// create a simplfied object for js
$json_fields = array("id", "sheet_id", "created", "details", "geohash", "is_interactive", "latitude", "longitude", "user_id", "perms", "sheet_id");
if ($dots) {
    $to_json = array();
    foreach ($dots as $dot) {
        $tmp = 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']);
                    }
                    $tmp[$fi] = $_details;
                } else {
                    $tmp[$fi] = $dot[$fi];
                }