Author: jleroux
Date: Sun Dec 5 19:09:57 2010
New Revision: 1042411
URL:
http://svn.apache.org/viewvc?rev=1042411&view=revLog:
A patch from Anne Jessel "Wrong product displayed as associated product" (
https://issues.apache.org/jira/browse/OFBIZ-4023) - OFBIZ-4023
To reproduce:
* add two associated products to a main product, both with "Complementary or Cross-Sell" association type
* view the main product in ecommerce
Expected behaviour: the two associated products are listed near the bottom of the page
Actual behaviour: two products are listed at the bottom of the page, but only one of them is an associated product. The other is the main product.
The problem is caused by the value of a freemarker variable changing at a point where other freemarker code assumes the variable does not change. The execution path is complicated.
The patch fixes the problem by saving the value of the key variable into another variable, and restoring it later. However I do wonder if there is a better solution.
JLR: I did not try to find a better solution
Modified:
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl
Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl?rev=1042411&r1=1042410&r2=1042411&view=diff==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl Sun Dec 5 19:09:57 2010
@@ -762,6 +762,7 @@ ${virtualJavaScript?if_exists}
</#if>
<#-- Upgrades/Up-Sell/Cross-Sell -->
<#macro associated assocProducts beforeName showName afterName formNamePrefix targetRequestName>
+ <#assign pageProduct = product />
<#assign targetRequest = "product" />
<#if targetRequestName?has_content>
<#assign targetRequest = targetRequestName />
@@ -791,6 +792,7 @@ ${virtualJavaScript?if_exists}
${setRequestAttribute("targetRequestName", targetRequestName)}
</#if>
${screens.render(productsummaryScreen)}
+ <#assign product = pageProduct />
<#local listIndex = listIndex + 1 />
</#list>
</div>