make the shop code use URLs generated by the url generator
authorTony Cook <tony@develop-help.com>
Thu, 21 Feb 2008 12:57:39 +0000 (12:57 +0000)
committertony <tony@45cb6cf1-00bc-42d2-bb5a-07f51df49f94>
Thu, 21 Feb 2008 12:57:39 +0000 (12:57 +0000)
site/cgi-bin/modules/BSE/Request/Base.pm
site/cgi-bin/modules/BSE/UI/Shop.pm
site/templates/cart_base.tmpl
site/templates/checkoutnew_base.tmpl
site/templates/checkoutpay_base.tmpl

index 9d4b15f..24c4993 100644 (file)
@@ -510,13 +510,25 @@ sub user_url {
   my $cfg = $req->cfg;
   my $base = $script eq 'shop' ? $cfg->entryVar('site', 'secureurl') : '';
   my $template;
-  if ($script eq 'nuser') {
-    $template = "/cgi-bin/nuser.pl/user/TARGET";
+  if ($target) {
+    if ($script eq 'nuser') {
+      $template = "/cgi-bin/nuser.pl/user/TARGET";
+    }
+    else {
+      $template = "$base/cgi-bin/$script.pl?a_TARGET=1";
+    }
+    $template = $cfg->entry('targets', $script, $template);
+    $template =~ s/TARGET/$target/;
   }
   else {
-    $template = "$base/cgi-bin/$script.pl?a_TARGET=1";
+    if ($script eq 'nuser') {
+      $template = "/cgi-bin/nuser.pl/user";
+    }
+    else {
+      $template = "$base/cgi-bin/$script.pl";
+    }
+    $template = $cfg->entry('targets', $script.'_n', $template);
   }
-  $template =~ s/TARGET/$target/;
   if (@options) {
     $template .= $template =~ /\?/ ? '&' : '?';
     my @entries;
index caf7692..dc967bb 100644 (file)
@@ -163,7 +163,7 @@ sub req_add {
 
   my $refresh = $cgi->param('r');
   unless ($refresh) {
-    $refresh = $ENV{SCRIPT_NAME};
+    $refresh = $req->user_url(shop => 'cart');
   }
 
   # speed for ajax
@@ -224,7 +224,7 @@ sub req_addsingle {
 
   my $refresh = $cgi->param('r');
   unless ($refresh) {
-    $refresh = $ENV{SCRIPT_NAME};
+    $refresh = $req->user_url(shop => 'cart');
   }
 
   # speed for ajax
@@ -303,7 +303,7 @@ sub req_addmultiple {
 
   my $refresh = $cgi->param('r');
   unless ($refresh) {
-    $refresh = $ENV{SCRIPT_NAME};
+    $refresh = $req->user_url(shop => 'cart');
   }
   if (@messages) {
     my $sep = $refresh =~ /\?/ ? '&' : '?';
@@ -436,7 +436,7 @@ sub req_remove_item {
   $req->session->{cart} = \@cart;
   $req->session->{order_info_confirmed} = 0;
 
-  return BSE::Template->get_refresh($ENV{SCRIPT_NAME}, $req->cfg);
+  return BSE::Template->get_refresh($req->user_url(shop => 'cart'), $req->cfg);
 }
 
 
@@ -499,7 +499,7 @@ sub req_order {
     return $class->req_payment($req);
   }
   else {
-    return BSE::Template->get_refresh("$ENV{SCRIPT_NAME}?a_show_payment=1", $req->cfg);
+    return BSE::Template->get_refresh($req->user_url(shop => 'show_payment'), $req->cfg);
   }
 }
 
@@ -773,7 +773,7 @@ sub req_payment {
   # empty the cart ready for the next order
   delete @{$session}{qw/order_info order_info_confirmed cart order_work/};
 
-  return BSE::Template->get_refresh("$ENV{SCRIPT_NAME}?a_orderdone=1", $req->cfg);
+  return BSE::Template->get_refresh($req->user_url(shop => 'orderdone'), $req->cfg);
 }
 
 sub req_orderdone {
index 7823269..f43f46a 100644 (file)
@@ -24,7 +24,7 @@
 <:ifMsg:><p><font face="Verdana, Arial, Helvetica, sans-serif"><b><:msg:></b> </font></p><:or:><:eif:>
 <p><font face="Verdana, Arial, Helvetica, sans-serif" size="-2"><b>Contains</b> 
   - <:count:> item<:if Eq [count] "1":><:or Eq:>s<:eif Eq:></font></p>
-<form name="form1" method="POST" action="/cgi-bin/shop.pl">
+<form name="form1" method="POST" action="<:dyntarget shop:>">
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
     <tr> 
       <td align="center" bgcolor="#CCCCCC" width="100%" height="18"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 
index 129fc28..35fcbdb 100644 (file)
@@ -137,7 +137,7 @@ function BSE_validateForm {
     </table>
     <br>
 <:eif User:>
-<form action="/cgi-bin/shop.pl" method="POST" onSubmit="BSE_validateForm();return document.MM_returnValue">
+<form action="<:dyntarget shop:>" method="POST" onSubmit="BSE_validateForm();return document.MM_returnValue">
   <font face="Verdana, Arial, Helvetica, sans-serif" size="3"> <b>Shipping Details:</b></font> 
   <hr noshade size="1">
   <table border="0" cellspacing="0" cellpadding="0">
index d7c12ac..19841d6 100644 (file)
@@ -85,7 +85,7 @@
     <td></td>
   </tr>
 </table>
-<form action="/cgi-bin/shop.pl" method="post">
+<form action="<:dyntarget shop:>" method="post">
   <font face="Verdana, Arial, Helvetica, sans-serif" size="3"> <b>Payment Details:</b></font> 
   <hr size="1" noshade>
 <:ifMsg:><p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><:msg:></font></b></p><:or:><:eif:>