/* Copyright (c) 2009 Arnaud Renevier, Inc, published under the modified BSD
license. */
-require_once ("./inc/settings.php");
-require_once ("./inc/utils.php");
-require_once ("./inc/db/mysql.php");
+function headers_callback ($output) {
+ $etag = md5 ($output);
+ if ((isset ($_SERVER ["HTTP_IF_NONE_MATCH"])) &&
+ ($_SERVER ["HTTP_IF_NONE_MATCH"] == $etag)) {
+ header ("HTTP/1.1 304 Not Modified");
+ exit ();
+ }
+
+ header ("Content-type: application/vnd.google-earth.kml+xml");
+ // no-cache is needed otherwise IE does not try to get new version.
+ header ("Cache-control: no-cache, must-revalidate");
+ header (sprintf ("ETag: %s", $etag));
+
+ return $output;
+}
function main ($features) {
';
if (SITETITLE) {
- printf (' <name>%s</name>', SITETITLE);
+ printf (' <name>%s</name>', htmlspecialchars (SITETITLE));
}
foreach ($features as $feature) {
$id = $feature->id;
$title = htmlspecialchars ($feature->title, ENT_QUOTES);
$description = htmlspecialchars ($feature->description, ENT_QUOTES);
$imgurl = ($feature->imgpath ?
- full_url_from_filename ($feature->imgpath)
+ image_url_from_imgpath ($feature->imgpath)
+ : "");
+ $thumburl = ($feature->imgpath ?
+ thumb_url_from_imgpath ($feature->imgpath)
: "");
$lon = $feature->lon;
$lat = $feature->lat;
$title;
if ($imgurl) {
- $imgurlHTML = sprintf ('<img alt="%s" src="%s">', $alt, $imgurl);
+ $imgurlHTML = sprintf ('<a href="%s"><img alt="%s" src="%s"></a>', $imgurl, $alt, $thumburl);
} else {
$imgurlHTML = "";
}
</kml>';
}
+if (!@include_once ("./inc/settings.php")) {
+ exit ("server error");
+}
+require_once ("./inc/utils.php");
+require_once ("./inc/db/mysql.php");
+
try {
$connection->connect (DBHOST, DBUSER, DBPWD, DBNAME, DBPREFIX);
- $features = $connection->listfeatures ();
+ $features = $connection->listfeatures ($_GET ['from_user']);
} catch (Exception $e) {
exit ("server error");
}
-header ("Content-type: application/vnd.google-earth.kml+xml");
+
+ob_start ("headers_callback");
main ($features);
+ob_end_flush ()
?>