📄 product.bsh
字号:
/* * Copyright (c) 2003-2005 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 $Rev: 5462 $ *@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);detailScreen = "productdetail";productId = requestParams.get("product_id");// get the product entityif (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)); } context.put("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) { context.put("product", product); content = context.get("page"); content.put("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, ", ")); // Set the default template for aggregated product (product component configurator ui) if (product.getString("productTypeId") != null && product.getString("productTypeId").equals("AGGREGATED") && configproductdetailScreen != null) { detailScreen = configproductdetailScreen; } productTemplate = product.getString("detailScreen"); if (productTemplate != null && productTemplate.length() > 0) { detailScreen = productTemplate; } }} // check the catalog's template path and updatetemplatePathPrefix = CatalogWorker.getTemplatePathPrefix(request);if (templatePathPrefix != null) { detailScreen = templatePathPrefix + detailScreen;} // set the template for the viewcontext.put("detailScreen", detailScreen);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -