[bknr-cvs] ksprotte changed trunk/projects/bos/web/poi-handlers.lisp
BKNR Commits
bknr at bknr.net
Thu Jul 31 09:02:18 UTC 2008
Revision: 3707
Author: ksprotte
URL: http://bknr.net/trac/changeset/3707
refactored web/poi-handlers.lisp
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-31 08:54:27 UTC (rev 3706)
+++ trunk/projects/bos/web/poi-handlers.lisp 2008-07-31 09:02:18 UTC (rev 3707)
@@ -2,6 +2,7 @@
(enable-interpol-syntax)
+;;; make-poi-handler
(defclass make-poi-handler (page-handler)
())
@@ -19,6 +20,7 @@
(t
(redirect (edit-object-url (make-poi name)))))))
+;;; edit-poi-handler
(defclass edit-poi-handler (editor-only-handler edit-object-handler)
()
(:default-initargs :object-class 'poi :query-function #'find-poi))
@@ -283,8 +285,7 @@
(html (:h2 "POI has been deleted")
"The POI has been deleted")))
-;; edit-poi-image
-
+;;; edit-poi-image-handler
(defclass edit-poi-image-handler (editor-only-handler edit-object-handler)
()
(:default-initargs :object-class 'poi-image))
@@ -375,6 +376,7 @@
(:h2 "The POI image has been deleted")
"You may " (cmslink (edit-object-url poi) "continue editing the POI"))))
+;;; poi-javascript-handler
(defclass poi-javascript-handler (page-handler)
())
@@ -403,6 +405,7 @@
(:princ "parent.poi_fertig(pois, anzahlSponsoren, anzahlVerkauft);")
(:princ (format nil "parent.last_sponsors([~{~A~^,~%~}]);" (mapcar #'contract-js last-paid-contracts)))))))))
+;;; poi-image-handler
(defclass poi-image-handler (object-handler)
()
(:default-initargs :object-class 'poi :query-function #'find-poi))
@@ -422,6 +425,7 @@
imageproc-arguments))
(error "image index ~a out of bounds for poi ~a" image-index poi)))))
+;;; poi-movie-handler
(defclass poi-movie-handler (admin-only-handler object-handler)
()
(:default-initargs :object-class 'poi-movie))
@@ -439,6 +443,7 @@
:allowFullScreen "true"
:width "425" :height "344")))))
+;;; poi-xml-handler
(defun write-poi-xml (poi language)
"Writes the poi xml format for one specific language. This is used
to generate the POI microsite using XSLT (client side)."
@@ -492,6 +497,21 @@
(with-media ("movie" "Video")
(with-element "url" (text (poi-movie-url movie))))))))))
+(defclass poi-xml-handler (object-handler)
+ ()
+ (:default-initargs :object-class 'poi :query-function #'find-poi))
+
+
+(defmethod handle-object ((handler poi-xml-handler) poi)
+ (let ((timestamp (store-object-last-change poi 1)))
+ (hunchentoot:handle-if-modified-since timestamp)
+ (setf (hunchentoot:header-out :last-modified)
+ (hunchentoot:rfc-1123-date timestamp))
+ (with-query-params ((lang "en"))
+ (with-xml-response (:xsl-stylesheet-name "/static/poi.xsl")
+ (write-poi-xml poi lang)))))
+
+;;; poi-kml-handler
(defun poi-description-google-earth (poi language &key (image-width 120))
(labels ((website-path (path &rest args)
(format nil "http://~a~a" (website-host)
@@ -590,8 +610,6 @@
(text " | copyright")))))))))
(error (c) (error "while generating poi-description-google-earth for ~s:~%~a" poi c)))))
-
-
(defun write-poi-kml (poi language)
(with-element "Placemark"
(with-element "name" (text (or (slot-string poi 'title language nil)
@@ -603,20 +621,6 @@
(with-element "coordinates"
(text (format nil "~{~,20F,~}0" (poi-center-lon-lat poi)))))))
-(defclass poi-xml-handler (object-handler)
- ()
- (:default-initargs :object-class 'poi :query-function #'find-poi))
-
-
-(defmethod handle-object ((handler poi-xml-handler) poi)
- (let ((timestamp (store-object-last-change poi 1)))
- (hunchentoot:handle-if-modified-since timestamp)
- (setf (hunchentoot:header-out :last-modified)
- (hunchentoot:rfc-1123-date timestamp))
- (with-query-params ((lang "en"))
- (with-xml-response (:xsl-stylesheet-name "/static/poi.xsl")
- (write-poi-xml poi lang)))))
-
(defclass poi-kml-handler (object-handler)
()
(:default-initargs :object-class 'poi :query-function #'find-poi))
@@ -629,6 +633,7 @@
(with-element "kml"
(write-poi-kml poi lang))))))
+;;; poi-kml-all-handler
(defclass poi-kml-all-handler (page-handler)
())
More information about the Bknr-cvs
mailing list