Revision: 3452 Author: ksprotte URL: http://bknr.net/trac/changeset/3452
poi-kml-all-handler now uses last-modifiepoi-kml-all-handler now uses last-modifiedd
U trunk/projects/bos/web/poi-handlers.lisp
Modified: trunk/projects/bos/web/poi-handlers.lisp =================================================================== --- trunk/projects/bos/web/poi-handlers.lisp 2008-07-15 14:37:26 UTC (rev 3451) +++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-15 15:44:31 UTC (rev 3452) @@ -576,22 +576,26 @@ ())
(defmethod handle ((handler poi-kml-all-handler)) - (with-query-params ((lang "en")) - (with-xml-response () - ;; (sax:processing-instruction cxml::*sink* "xml-stylesheet" "href="/static/tri.xsl" type="text/xsl"") - (with-namespace (nil "http://earth.google.com/kml/2.1") - (with-element "kml" - (with-element "Document" - (with-element "Style" - (attribute "id" "poiPlacemarkIcon") - (with-element "IconStyle" - ;; (with-element "color" (text "ffffffff")) - (with-element "scale" (text "0.8")) - (with-element "Icon" - (with-element "href" (text (format nil "http://~a/static/Orang_weiss.png" (website-host))))))) - (kml-region (make-rectangle2 (list 0 0 +width+ +width+)) '(:min 600 :max -1)) - (mapc #'(lambda (poi) (write-poi-kml poi lang)) - (remove-if-not #'(lambda (poi) (and (poi-area poi) (poi-published poi))) - (class-instances 'poi))))))))) + (let* ((relevant-pois (remove-if-not #'(lambda (poi) (and (poi-area poi) (poi-published poi))) + (class-instances 'poi))) + (pois-last-change (reduce #'max relevant-pois :key (lambda (poi) (store-object-last-change poi 1))))) + (hunchentoot:handle-if-modified-since pois-last-change) + (setf (hunchentoot:header-out :last-modified) + (hunchentoot:rfc-1123-date pois-last-change)) + (with-query-params ((lang "en")) + (with-xml-response () + ;; (sax:processing-instruction cxml::*sink* "xml-stylesheet" "href="/static/tri.xsl" type="text/xsl"") + (with-namespace (nil "http://earth.google.com/kml/2.1") + (with-element "kml" + (with-element "Document" + (with-element "Style" + (attribute "id" "poiPlacemarkIcon") + (with-element "IconStyle" + ;; (with-element "color" (text "ffffffff")) + (with-element "scale" (text "0.8")) + (with-element "Icon" + (with-element "href" (text (format nil "http://~a/static/Orang_weiss.png" (website-host))))))) + (kml-region (make-rectangle2 (list 0 0 +width+ +width+)) '(:min 600 :max -1)) + (mapc #'(lambda (poi) (write-poi-kml poi lang)) relevant-pois))))))))