Пример #1
0
/**
 * @return   Smarty  Locally-usable Smarty instance.
 */
function get_smarty_instance($user)
{
    $s = new Smarty();
    $s->compile_dir = join(DIRECTORY_SEPARATOR, array(dirname(__FILE__), '..', 'templates', 'cache'));
    $s->cache_dir = join(DIRECTORY_SEPARATOR, array(dirname(__FILE__), '..', 'templates', 'cache'));
    $s->template_dir = join(DIRECTORY_SEPARATOR, array(dirname(__FILE__), '..', 'templates'));
    $s->config_dir = join(DIRECTORY_SEPARATOR, array(dirname(__FILE__), '..', 'templates'));
    $s->assign('domain', get_domain_name());
    $s->assign('base_dir', get_base_dir());
    $s->assign('base_href', get_base_href());
    $s->assign('constants', get_defined_constants());
    $s->assign('providers', get_map_providers());
    $s->assign('request', array('get' => $_GET, 'post' => $_POST, 'uri' => $_SERVER['REQUEST_URI'], 'query' => $_SERVER['QUERY_STRING'], 'authenticated' => isset($user), 'user' => $user));
    $s->register_modifier('nice_placename', 'nice_placename');
    $s->register_modifier('nice_domainname', 'nice_domainname');
    $s->register_modifier('nice_relativetime', 'nice_relativetime');
    $s->register_modifier('nice_datetime', 'nice_datetime');
    $s->register_modifier('nice_degree', 'nice_degree');
    $s->register_modifier('decode_utf8', 'decode_utf8');
    return $s;
}
Пример #2
0
$query = array("place" => $print['place_woeid']);
$nearby_prints = get_prints($context->db, $context->user, $query, 200);
$nearby_prints = $nearby_prints[0];
if ($nearby_prints) {
    //print var_dump($nearby_prints);
    $rdm_keys = array_rand($nearby_prints, $num_req = 6);
    $rdm_nearby = array();
    foreach ($rdm_keys as $key => $val) {
        $rdm_nearby[] = $nearby_prints[$val];
    }
    $context->sm->assign('nearby_prints', $rdm_nearby);
}
$context->sm->assign('nearby_prints_json', json_encode($nearby_prints));
$context->sm->assign('zoom', $pages[0]['zoom']);
$context->sm->assign('activity', get_print_activity($context->db, $print_id, true));
$context->sm->assign('providers', get_map_providers());
if ($context->type == 'text/html') {
    header("Content-Type: text/html; charset=UTF-8");
    print $context->sm->fetch("atlas.html.tpl");
} elseif ($context->type == 'application/paperwalking+xml') {
    header("Content-Type: application/paperwalking+xml; charset=UTF-8");
    header("Access-Control-Allow-Origin: *");
    print '<' . '?xml version="1.0" encoding="utf-8"?' . ">\n";
    print $context->sm->fetch("atlas.xml.tpl");
} elseif ($context->type == 'application/geo+json' || $context->type == 'application/json') {
    header("Content-Type: application/geo+json; charset=UTF-8");
    echo print_to_geojson($print, $pages) . "\n";
} else {
    header('HTTP/1.1 400');
    die("Unknown type.\n");
}
Пример #3
0
    prints.place_woeid,
    prints.region_woeid,
    prints.country_woeid,
    prints.private,
    prints.cloned,
    prints.refreshed,
    pages.provider
FROM prints
LEFT JOIN pages ON pages.print_id=prints.id
GROUP BY prints.id
ORDER BY created DESC
EOQ;
$res = $context->db->query($query);
if (PEAR::isError($res)) {
    die_with_code(500, $res->message);
}
$rsp = array();
while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) {
    $rsp[] = array("pages" => (int) $row['pages'], "created" => date("c", strtotime($row['created'])), "composed" => date("c", strtotime($row['composed'])), "orientation" => $row['orientation'], "layout" => $row['layout'], "provider" => $row['provider']);
}
//echo json_encode($rsp);
$metric_data = json_encode($rsp);
$context->sm->assign('metric_data', $metric_data);
$providers = get_map_providers();
$providers_by_name = array();
foreach ($providers as $i => $provider) {
    $providers_by_name[$provider[0]] = $provider[1];
}
$context->sm->assign('providers', json_encode($providers_by_name));
header("Content-Type: text/html; charset=UTF-8");
print $context->sm->fetch("metrics.html.tpl");
Пример #4
0
function get_print(&$dbh, $print_id)
{
    $atlas_part = false;
    if (preg_match('#^(\\w+)/(\\w+)$#', $print_id, $m)) {
        list($print_id, $page_number) = array($m[1], $m[2]);
    }
    $q = "SELECT layout, atlas_pages,\n                     paper_size, orientation, provider, private,\n                     pdf_url, preview_url, geotiff_url,\n                     id, title, text, form_id, north, south, east, west, zoom,\n                     (north + south) / 2 AS latitude,\n                     (east + west) / 2 AS longitude,\n                     UNIX_TIMESTAMP(created) AS created,\n                     UNIX_TIMESTAMP(composed) AS composed,\n                     UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(created) AS age,\n                     country_name, country_woeid, region_name, region_woeid, place_name, place_woeid,\n                     user_id, progress, cloned, refreshed\n              FROM prints\n              WHERE id = ?";
    $res = $dbh->query($q, $print_id);
    if (PEAR::isError($res)) {
        die_with_code(500, "{$res->message}\n{$q}\n");
    }
    $row = $res->fetchRow(DB_FETCHMODE_ASSOC);
    if (empty($row)) {
        return null;
    }
    // TODO: ditch special-case for provider
    if (empty($row['provider'])) {
        $row['provider'] = reset(reset(get_map_providers()));
    }
    // TODO: ditch special-case for pdf_url
    if (empty($row['pdf_url']) && S3_BUCKET_ID) {
        $row['pdf_url'] = sprintf('http://%s.s3.amazonaws.com/prints/%s/walking-paper-%s.pdf', S3_BUCKET_ID, $row['id'], $row['id']);
    }
    // TODO: ditch special-case for preview_url
    if (empty($row['preview_url']) && S3_BUCKET_ID) {
        $row['preview_url'] = sprintf('http://%s.s3.amazonaws.com/prints/%s/preview.png', S3_BUCKET_ID, $row['id']);
    }
    if ($page_number) {
        $row['selected_page'] = get_print_page($dbh, $print_id, $page_number);
    }
    return $row;
}