📄 product.bsh
字号:
/*
* Copyright (c) 2003 The Open For Business Project - www.ofbiz.org
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
* OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
* THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*@author Andy Zeneski
*@version $Revision: 1.4 $
*@since 2.1
*/
import java.lang.*;
import java.util.*;
import org.ofbiz.base.util.*;
import org.ofbiz.entity.*;
import org.ofbiz.service.*;
import org.ofbiz.product.catalog.*;
import org.ofbiz.product.category.*;
import org.ofbiz.product.product.ProductWorker;
dispatcher = request.getAttribute("dispatcher");
delegator = request.getAttribute("delegator");
contentPathPrefix = CatalogWorker.getContentPathPrefix(request);
catalogName = CatalogWorker.getCatalogName(request);
currentCatalogId = CatalogWorker.getCurrentCatalogId(request);
requestParams = UtilHttp.getParameterMap(request);
detailTemplate = "/entry/catalog/productdetail.ftl";
productId = requestParams.get("product_id");
// get the product entity
if (productId != null) {
product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId));
// first make sure this isn't a variant that has an associated virtual product, if it does show that instead of the variant
virtualProductId = ProductWorker.getVariantVirtualId(product);
if (virtualProductId != null) {
productId = virtualProductId;
product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId));
}
request.setAttribute("productId", productId);
// now check to see if there is a view allow category and if this product is in it...
if (product != null) {
viewProductCategoryId = CatalogWorker.getCatalogViewAllowCategoryId(delegator, currentCatalogId);
if (viewProductCategoryId != null) {
if (!CategoryWorker.isProductInCategory(delegator, productId, viewProductCategoryId)) {
// a view allow productCategoryId was found, but the product is not in the category, axe it...
product = null;
}
}
}
if (product != null) {
request.setAttribute("product", product);
content = context.get("page");
content.setProperty("title", product.getString("productName"));
context.put("metaDescription", product.getString("productName"));
keywords = new ArrayList();
keywords.add(product.getString("productName"));
keywords.add(catalogName);
members = delegator.findByAndCache("ProductCategoryMember", UtilMisc.toMap("productId", productId));
membersIter = members.iterator();
while (membersIter.hasNext()) {
member = membersIter.next();
category = member.getRelatedOneCache("ProductCategory");
keywords.add(category.getString("description"));
}
context.put("metaKeywords", StringUtil.join(keywords, ", "));
//productTemplate = product.getString("detailTemplate");
//if (productTemplate != null && productTemplate.length() > 0) {
//detailTemplate = productTemplate;
//}
}
}
// check the catalog's template path and update
templatePathPrefix = CatalogWorker.getTemplatePathPrefix(request);
if (templatePathPrefix != null) {
detailTemplate = templatePathPrefix + detailTemplate;
}
// set the template for the view
request.setAttribute("detailTemplate", detailTemplate);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -