[bknr-cvs] ksprotte changed trunk/projects/bos/web/kml-handlers.lisp
BKNR Commits
bknr at bknr.net
Mon Oct 13 16:21:40 UTC 2008
Revision: 3984
Author: ksprotte
URL: http://bknr.net/trac/changeset/3984
added replace-contract-tree-placeholder
U trunk/projects/bos/web/kml-handlers.lisp
Modified: trunk/projects/bos/web/kml-handlers.lisp
===================================================================
--- trunk/projects/bos/web/kml-handlers.lisp 2008-10-13 13:37:52 UTC (rev 3983)
+++ trunk/projects/bos/web/kml-handlers.lisp 2008-10-13 16:21:39 UTC (rev 3984)
@@ -98,11 +98,25 @@
(if (null sponsor)
string
(let ((contract (first (sponsor-contracts sponsor))))
- (ppcre:regex-replace #?r"<!-- +personalized +contract +placemark +-->"
+ (ppcre:regex-replace #?r"<!-- +personalized +contract +placemark *-->"
string
(cxml:with-xml-output (cxml:make-string-sink :omit-xml-declaration-p t)
(write-personalized-contract-placemark-kml contract lang))))))
+(defun replace-contract-tree-placeholder (string sponsor lang)
+ (ppcre:regex-replace
+ #?r"<!-- +squaremetre +area +contract +tree +link *-->"
+ string
+ (if (and sponsor (first (sponsor-contracts sponsor)))
+ (let ((contract (first (sponsor-contracts sponsor)))
+ (node (find-contract-node *contract-tree* contract))
+ (path (node-path node))
+ (contract-id (store-object-id contract)))
+ (format nil "<href>http://~a/contract-tree-kml?rmcid=~D&rmcpath=~{~D~}&lang=~A</href>"
+ (website-host) contract-id path lang))
+ (format nil "<href>http://~A/contract-tree-kml?lang=~A</href>"
+ (website-host) lang))))
+
(defun serve-kml-root-data (&optional sponsor)
(with-query-params ((lang "en"))
(let* ((kml-root-data (kml-root-data-with-language lang))
@@ -117,7 +131,8 @@
(let ((kml-string (kml-string kml-root-data)))
(setq kml-string (replace-all-url-hosts kml-string (website-host))
kml-string (replace-lang-query-params kml-string lang)
- kml-string (replace-personalized-contract-placeholder kml-string sponsor lang))))))
+ kml-string (replace-personalized-contract-placeholder kml-string sponsor lang)
+ kml-string (replace-contract-tree-placeholder kml-string sponsor lang))))))
(defmethod handle-object ((handler kml-root-handler) (object sponsor))
(serve-kml-root-data object))
More information about the Bknr-cvs
mailing list