]> dev.renevier.net Git - syp.git/blobdiff - items.php
option to show popup near marker
[syp.git] / items.php
index bcf5f1fc9757c50b33097c72bec649a0c9f738f4..e7a97231572a689dc0d4185706e66d2a7aab7b33 100644 (file)
--- a/items.php
+++ b/items.php
@@ -6,6 +6,21 @@ 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) {
 
     echo '<?xml version="1.0" encoding="UTF-8"?>
@@ -21,7 +36,10 @@ function main ($features) {
         $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;
@@ -30,7 +48,7 @@ function main ($features) {
                     $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 = "";
         }
@@ -65,6 +83,8 @@ try {
 } catch (Exception $e) {
     exit ("server error");
 }
-header ("Content-type: application/vnd.google-earth.kml+xml");
+
+ob_start ("headers_callback");
 main ($features);
+ob_end_flush ()
 ?>