X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=items.php;h=e7a97231572a689dc0d4185706e66d2a7aab7b33;hb=3a6fe9050638cf25ad42f31e99cc6d2d0b10398c;hp=f816cfbeb25f1f8b060779ea105bef8afed77095;hpb=7282fabcfef34ef95b8c6bd414f34d77037451e1;p=syp.git
diff --git a/items.php b/items.php
index f816cfb..e7a9723 100644
--- a/items.php
+++ b/items.php
@@ -2,9 +2,24 @@
/* Copyright (c) 2009 Arnaud Renevier, Inc, published under the modified BSD
license. */
-require ("./inc/settings.php");
-require ("./inc/errors.php");
-require ("./inc/db/mysql.php");
+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");
+ header ("Cache-control: must-revalidate");
+ header (sprintf ("ETag: %s", $etag));
+
+ return $output;
+}
function main ($features) {
@@ -17,34 +32,45 @@ function main ($features) {
printf (' %s', SITETITLE);
}
foreach ($features as $feature) {
+ $id = $feature->id;
$title = htmlspecialchars ($feature->title, ENT_QUOTES);
$description = htmlspecialchars ($feature->description, ENT_QUOTES);
- if (strpos ($feature->imgurl, "http://") === 0) {
- $imgurl = "http://" . rawurlencode (substr($feature->imgurl, 7));
- } else if (strpos ($feature->imgurl, "https://") === 0) {
- $imgurl = "https://" . rawurlencode (substr ($feature->imgurl, 8));
- } else {
- $imgurl = rawurlencode ($feature->imgurl);
- }
- $imgurl = str_replace ('%2F', '/', $imgurl);
+ $imgurl = ($feature->imgpath ?
+ image_url_from_imgpath ($feature->imgpath)
+ : "");
+ $thumburl = ($feature->imgpath ?
+ thumb_url_from_imgpath ($feature->imgpath)
+ : "");
$lon = $feature->lon;
$lat = $feature->lat;
$alt = (strlen ($title) > 60) ?
(substr ($title, 0, 57) . '...') :
$title;
+ if ($imgurl) {
+ $imgurlHTML = sprintf ('', $imgurl, $alt, $thumburl);
+ } else {
+ $imgurlHTML = "";
+ }
+
+ if ($description) {
+ $descriptionHTML = sprintf ('
%s
', $description) ;
+ } else {
+ $descriptionHTML = "";
+ }
+
printf ('
-
+
%s
%s
-
+ %s
+ %s
]]>
%s,%s
-', $title, $description, $alt, $imgurl, $lon, $lat);
+', $id, $title, $descriptionHTML, $imgurlHTML, $lon, $lat);
}
echo'
@@ -55,8 +81,10 @@ try {
$connection->connect (DBHOST, DBUSER, DBPWD, DBNAME, DBPREFIX);
$features = $connection->listfeatures ();
} catch (Exception $e) {
- server_error ();
+ exit ("server error");
}
-header ("Content-type: application/vnd.google-earth.kml+xml");
+
+ob_start ("headers_callback");
main ($features);
+ob_end_flush ()
?>