[bknr-cvs] r2367 - branches/bos/projects/bos/web

hhubner at common-lisp.net hhubner at common-lisp.net
Sat Jan 19 09:41:55 UTC 2008


Author: hhubner
Date: Sat Jan 19 04:41:54 2008
New Revision: 2367

Modified:
   branches/bos/projects/bos/web/webserver.lisp
Log:
Experiment to stop redirection on / - Instead, default the template
pathname to the index page.  This may screw up language detection,
which used to work by parsing the URL.


Modified: branches/bos/projects/bos/web/webserver.lisp
==============================================================================
--- branches/bos/projects/bos/web/webserver.lisp	(original)
+++ branches/bos/projects/bos/web/webserver.lisp	Sat Jan 19 04:41:54 2008
@@ -23,26 +23,32 @@
 ;; and change the template name according to the outcome.
 
 (defmethod find-template-pathname ((handler worldpay-template-handler) template-name &key request)
-  (when (scan #?r"(^|.*/)handle-sale" template-name)
-    (with-query-params (request cartId name address country transStatus lang MC_gift)      
-      (unless (website-supports-language lang)
-	(setf lang *default-language*))
-      (bos.m2::remember-worldpay-params cartId (all-request-params request))
-      (let ((contract (get-contract (parse-integer cartId))))
-	(sponsor-set-language (contract-sponsor contract) lang)
-	(cond
-	  ((not (typep contract 'contract))
-	   (user-error "Error: Invalid transaction ID."))
-	  ((contract-paidp contract)
-	   (user-error "Error: Transaction already processed."))
-	  ((equal "C" transStatus)
-	   (setf template-name #?"/$(lang)/sponsor_canceled"))
-	  ((< (contract-price contract) *mail-certificate-threshold*)
-	   (setf template-name #?"/$(lang)/quittung"))
-	  (t
-	   (when (<= *mail-fiscal-certificate-threshold* (contract-price contract))
-	     (mail-fiscal-certificate-to-office contract name address country))
-	   (setf template-name (if (and MC_gift (equal MC_gift "1")) #?"/$(lang)/versand_geschenk" #?"/$(lang)/versand_info")))))))
+  (cond
+    ((not (scan "/" template-name))
+     (setf template-name (format nil "~A/~A" (or (find-browser-prefered-language request)
+						 *default-language*)
+				 (if (equal "" template-name)
+				     "index" template-name))))
+    ((scan #?r"(^|.*/)handle-sale" template-name)
+     (with-query-params (request cartId name address country transStatus lang MC_gift)      
+       (unless (website-supports-language lang)
+	 (setf lang *default-language*))
+       (bos.m2::remember-worldpay-params cartId (all-request-params request))
+       (let ((contract (get-contract (parse-integer cartId))))
+	 (sponsor-set-language (contract-sponsor contract) lang)
+	 (cond
+	   ((not (typep contract 'contract))
+	    (user-error "Error: Invalid transaction ID."))
+	   ((contract-paidp contract)
+	    (user-error "Error: Transaction already processed."))
+	   ((equal "C" transStatus)
+	    (setf template-name #?"/$(lang)/sponsor_canceled"))
+	   ((< (contract-price contract) *mail-certificate-threshold*)
+	    (setf template-name #?"/$(lang)/quittung"))
+	   (t
+	    (when (<= *mail-fiscal-certificate-threshold* (contract-price contract))
+	      (mail-fiscal-certificate-to-office contract name address country))
+	    (setf template-name (if (and MC_gift (equal MC_gift "1")) #?"/$(lang)/versand_geschenk" #?"/$(lang)/versand_info"))))))))
   (call-next-method handler template-name))
 
 (defmethod initial-template-environment ((expander worldpay-template-handler) req)
@@ -215,6 +221,7 @@
 					("/cancel-contract" cancel-contract-handler)
 					("/statistics" statistics-handler)
 					("/rss" rss-handler)
+					#+(or)
 					("/" redirect-handler
 					 :to "/index")
 					("/index" index-handler)



More information about the Bknr-cvs mailing list