Author: hansbak
Date: Thu Aug 11 08:34:14 2011
New Revision: 1156536
URL: http://svn.apache.org/viewvc?rev=1156536&view=rev
Log:
seo friendly url had wrong category url because the tail category was missing.
Modified:
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/OfbizCatalogAltUrlTransform.java
Modified:
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java?rev=1156536&r1=1156535&r2=1156536&view=diff
==============================================================================
---
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java
(original)
+++
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java
Thu Aug 11 08:34:14 2011
@@ -341,16 +341,17 @@ public class CatalogUrlFilter extends Co
try {
GenericValue productCategory =
delegator.findOne("ProductCategory", UtilMisc.toMap("productCategoryId",
productCategoryId), true);
CategoryContentWrapper wrapper = new
CategoryContentWrapper(productCategory, request);
- return makeCategoryUrl(delegator, wrapper,
request.getSession().getServletContext().getContextPath(), previousCategoryId,
productCategoryId, productId, viewSize, viewIndex, viewSort, searchString);
+ List<String> trail = CategoryWorker.getTrail(request);
+ return makeCategoryUrl(delegator, wrapper, trail,
request.getSession().getServletContext().getContextPath(), previousCategoryId,
productCategoryId, productId, viewSize, viewIndex, viewSort, searchString);
} catch (GenericEntityException e) {
Debug.logWarning(e, "Cannot create category's URL for: " +
productCategoryId, module);
return redirectUrl;
}
}
- public static String makeCategoryUrl(Delegator delegator,
CategoryContentWrapper wrapper, String contextPath, String previousCategoryId,
String productCategoryId, String productId, String viewSize, String viewIndex,
String viewSort, String searchString) {
- String url = "";
- StringWrapper alternativeUrl = wrapper.get("ALTERNATIVE_URL");
+ public static String makeCategoryUrl(Delegator delegator,
CategoryContentWrapper wrapper, List<String> trail, String contextPath, String
previousCategoryId, String productCategoryId, String productId, String
viewSize, String viewIndex, String viewSort, String searchString) {
+ String url = "";
+ StringWrapper alternativeUrl = wrapper.get("ALTERNATIVE_URL");
if (UtilValidate.isNotEmpty(alternativeUrl) &&
UtilValidate.isNotEmpty(alternativeUrl.toString())) {
StringBuilder urlBuilder = new StringBuilder();
@@ -400,20 +401,23 @@ public class CatalogUrlFilter extends Co
url = urlBuilder.toString();
} else {
- List<String> crumb = FastList.newInstance();
- String currentCategoryId = null;
- url = CatalogUrlServlet.makeCatalogUrl(contextPath, crumb,
productId, currentCategoryId, previousCategoryId);
+ if(UtilValidate.isEmpty(trail)){
+ trail = FastList.newInstance();
+ }
+ url = CatalogUrlServlet.makeCatalogUrl(contextPath, trail,
productId, productCategoryId, previousCategoryId);
}
- return url;
+
+ return url;
}
public static String makeProductUrl(HttpServletRequest request, String
previousCategoryId, String productCategoryId, String productId) {
Delegator delegator = (Delegator) request.getAttribute("delegator");
String url = null;
try {
- GenericValue product = delegator.findOne("Product",
UtilMisc.toMap("productId", productId), true);
- ProductContentWrapper wrapper = new
ProductContentWrapper(product, request);
- url = makeProductUrl(delegator, wrapper,
request.getSession().getServletContext().getContextPath(), previousCategoryId,
productCategoryId, productId);
+ GenericValue product = delegator.findOne("Product",
UtilMisc.toMap("productId", productId), true);
+ ProductContentWrapper wrapper = new ProductContentWrapper(product,
request);
+ List<String> trail = CategoryWorker.getTrail(request);
+ url = makeProductUrl(delegator, wrapper, trail,
request.getSession().getServletContext().getContextPath(), previousCategoryId,
productCategoryId, productId);
} catch (GenericEntityException e) {
Debug.logWarning(e, "Cannot create product's URL for: " +
productId, module);
return redirectUrl;
@@ -421,7 +425,7 @@ public class CatalogUrlFilter extends Co
return url;
}
- public static String makeProductUrl(Delegator delegator,
ProductContentWrapper wrapper, String contextPath, String previousCategoryId,
String productCategoryId, String productId) {
+ public static String makeProductUrl(Delegator delegator,
ProductContentWrapper wrapper,List<String> trail, String contextPath, String
previousCategoryId, String productCategoryId, String productId) {
String url = "";
StringWrapper alternativeUrl = wrapper.get("ALTERNATIVE_URL");
if (UtilValidate.isNotEmpty(alternativeUrl) &&
UtilValidate.isNotEmpty(alternativeUrl.toString())) {
@@ -440,9 +444,10 @@ public class CatalogUrlFilter extends Co
}
url = urlBuilder.toString();
} else {
- List<String> crumb = FastList.newInstance();
- String currentCategoryId = null;
- url = CatalogUrlServlet.makeCatalogUrl(contextPath, crumb,
productId, currentCategoryId, previousCategoryId);
+ if(UtilValidate.isEmpty(trail)){
+ trail = FastList.newInstance();
+ }
+ url = CatalogUrlServlet.makeCatalogUrl(contextPath, trail,
productId, productCategoryId, previousCategoryId);
}
return url;
}
Modified:
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/OfbizCatalogAltUrlTransform.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/category/OfbizCatalogAltUrlTransform.java?rev=1156536&r1=1156535&r2=1156536&view=diff
==============================================================================
---
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/OfbizCatalogAltUrlTransform.java
(original)
+++
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/OfbizCatalogAltUrlTransform.java
Thu Aug 11 08:34:14 2011
@@ -109,7 +109,6 @@ public class OfbizCatalogAltUrlTransform
String viewSort = getStringArg(args, "viewSort");
String searchString = getStringArg(args, "searchString");
if (req != null) {
-
HttpServletRequest request = (HttpServletRequest)
req.getWrappedObject();
StringBuilder newURL = new StringBuilder();
if (UtilValidate.isNotEmpty(productId)) {
@@ -131,11 +130,11 @@ public class OfbizCatalogAltUrlTransform
if (UtilValidate.isNotEmpty(productId)) {
GenericValue product =
delegator.findOne("Product", UtilMisc.toMap("productId", productId), false);
ProductContentWrapper wrapper = new
ProductContentWrapper(dispatcher, product, locale, "text/html");
- url = CatalogUrlFilter.makeProductUrl(delegator,
wrapper, ((StringModel) prefix).getAsString(), previousCategoryId,
productCategoryId, productId);
+ url = CatalogUrlFilter.makeProductUrl(delegator,
wrapper, null, ((StringModel) prefix).getAsString(), previousCategoryId,
productCategoryId, productId);
} else {
GenericValue productCategory =
delegator.findOne("ProductCategory", UtilMisc.toMap("productCategoryId",
productCategoryId), false);
CategoryContentWrapper wrapper = new
CategoryContentWrapper(dispatcher, productCategory, locale, "text/html");
- url = CatalogUrlFilter.makeCategoryUrl(delegator,
wrapper, ((StringModel) prefix).getAsString(), previousCategoryId,
productCategoryId, productId, viewSize, viewIndex, viewSort, searchString);
+ url = CatalogUrlFilter.makeCategoryUrl(delegator,
wrapper, null, ((StringModel) prefix).getAsString(), previousCategoryId,
productCategoryId, productId, viewSize, viewIndex, viewSort, searchString);
}
out.write(url.toString());
} else {