📄 configproductdetail.ftl
字号:
</div> <#if price.listPrice?exists && price.price?exists && price.price?double < price.listPrice?double> <#assign priceSaved = price.listPrice?double - price.price?double> <#assign percentSaved = (priceSaved?double / price.listPrice?double) * 100> <div class="tabletext">${uiLabelMap.EcommerceSave}: <span class="basePrice"><@ofbizCurrency amount=priceSaved isoCode=price.currencyUsed/> (${percentSaved?int}%)</span></div> </#if> </#if> <#-- Included quantities/pieces --> <#if product.quantityIncluded?exists && product.quantityIncluded?double != 0> <div class="tabletext">${uiLabelMap.EcommerceIncludes}: ${product.quantityIncluded?if_exists} ${product.quantityUomId?if_exists} </div> </#if> <#if product.piecesIncluded?exists && product.piecesIncluded?long != 0> <div class="tabletext">${uiLabelMap.EcommercePieces}: ${product.piecesIncluded} </div> </#if> <#if daysToShip?exists> <div class="tabletext"><b>${uiLabelMap.ProductUsuallyShipsIn} <font color='red'>${daysToShip}</font> ${uiLabelMap.CommonDays}!<b></div> </#if> <#-- tell a friend --> <div class="tabletext"> </div> <div class="tabletext"> <a href="javascript:popUpSmall('<@ofbizUrl>tellafriend?productId=${product.productId}</@ofbizUrl>','tellafriend');" class="buttontext">${uiLabelMap.CommonTellAFriend}</a> </div> <#if disFeatureList?exists && 0 < disFeatureList.size()> <p> </p> <#list disFeatureList as currentFeature> <div class="tabletext"> ${currentFeature.productFeatureTypeId}: ${currentFeature.description} </div> </#list> <div class="tabletext"> </div> </#if> <form method="post" action="<@ofbizUrl>additem<#if requestAttributes._CURRENT_VIEW_?exists>/${requestAttributes._CURRENT_VIEW_}</#if></@ofbizUrl>" name="addform" style='margin: 0;'> <#assign inStock = true> <#-- Variant Selection --> <#if product.isVirtual?exists && product.isVirtual?upper_case == "Y"> <#if variantTree?exists && 0 < variantTree.size()> <#list featureSet as currentType> <div class="tabletext"> <select name="FT${currentType}" class="selectBox" onchange="javascript:getList(this.name, (this.selectedIndex-1), 1);"> <option>${featureTypes.get(currentType)}</option> </select> </div> </#list> <input type='hidden' name="product_id" value='${product.productId}'> <input type='hidden' name="add_product_id" value='NULL'> <#else> <input type='hidden' name="product_id" value='${product.productId}'> <input type='hidden' name="add_product_id" value='NULL'> <div class='tabletext'><b>${uiLabelMap.ProductItemOutofStock}.</b></div> <#assign inStock = false> </#if> <#else> <input type='hidden' name="product_id" value='${product.productId}'> <input type='hidden' name="add_product_id" value='${product.productId}'> <#if productNotAvailable?exists> <#assign isStoreInventoryRequired = Static["org.ofbiz.product.store.ProductStoreWorker"].isStoreInventoryRequired(request, product)> <#if isStoreInventoryRequired> <div class='tabletext'><b>${uiLabelMap.ProductItemOutofStock}.</b></div> <#assign inStock = false> <#else> <div class='tabletext'><b>${product.inventoryMessage?if_exists}</b></div> </#if> </#if> </#if> </td></tr><tr><td colspan="2" align="right"> <#-- check to see if introductionDate hasn't passed yet --> <#if product.introductionDate?exists && nowTimestamp.before(product.introductionDate)> <p> </p> <div class='tabletext' style='color: red;'>${uiLabelMap.ProductProductNotYetMadeAvailable}.</div> <#-- check to see if salesDiscontinuationDate has passed --> <#elseif product.salesDiscontinuationDate?exists && nowTimestamp.after(product.salesDiscontinuationDate)> <div class='tabletext' style='color: red;'>${uiLabelMap.ProductProductNoLongerAvailable}.</div> <#-- check to see if the product requires inventory check and has inventory --> <#else> <#if inStock> <#if product.requireAmount?default("N") == "Y"> <#assign hiddenStyle = "tabletext"> <#else> <#assign hiddenStyle = "tabletexthidden"> </#if> <div id="add_amount" class="${hiddenStyle}"> <nobr><b>Amount:</b></nobr> <input type="text" class="inputBox" size="5" name="add_amount" value=""> </div> <#if !configwrapper.isCompleted()> <div class="tabletext">[${uiLabelMap.EcommerceProductNotConfigured}] <input type="text" class="inputBox" size="5" name="quantity" value="0" disabled></div> <#else> <a href="javascript:addItem()" class="buttontext"><nobr>[${uiLabelMap.EcommerceAddtoCart}]</nobr></a> <input type="text" class="inputBox" size="5" name="quantity" value="1" > </#if> </#if> <#if requestParameters.category_id?exists> <input type='hidden' name='category_id' value='${requestParameters.category_id}'> </#if> </#if> </form> <div class="tabletext"> <#if sessionAttributes.userLogin?has_content && sessionAttributes.userLogin.userLoginId != "anonymous"> <hr class="sepbar"/> <form name="addToShoppingList" method="post" action="<@ofbizUrl>addItemToShoppingList<#if requestAttributes._CURRENT_VIEW_?exists>/${requestAttributes._CURRENT_VIEW_}</#if></@ofbizUrl>"> <input type="hidden" name="productId" value="${requestParameters.product_id}"> <input type="hidden" name="product_id" value="${requestParameters.product_id}"> <select name="shoppingListId" class="selectBox"> <#if shoppingLists?has_content> <#list shoppingLists as shoppingList> <option value="${shoppingList.shoppingListId}">${shoppingList.listName}</option> </#list> </#if> <option value="">---</option> <option value="">${uiLabelMap.EcommerceNewShoppingList}</option> </select> <input type="text" size="5" class="inputBox" name="quantity" value="1"> <a href="javascript:document.addToShoppingList.submit();" class="buttontext">[${uiLabelMap.EcommerceAddtoShoppingList}]</a> </form> <#else> <br/> ${uiLabelMap.EcommerceYouMust} <a href="<@ofbizUrl>checkLogin/showcart</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonLogin}</a> ${uiLabelMap.EcommerceToAddSelectedItemsToShoppingList}. </#if> </div> <#-- Prefill first select box (virtual products only) --> <#if variantTree?exists && 0 < variantTree.size()> <script language="JavaScript" type="text/javascript">eval("list" + "${featureOrderFirst}" + "()");</script> </#if> <#-- Swatches (virtual products only) --> <#if variantSample?exists && 0 < variantSample.size()> <#assign imageKeys = variantSample.keySet()> <#assign imageMap = variantSample> <p> </p> <table cellspacing="0" cellpadding="0"> <tr> <#assign maxIndex = 7> <#assign indexer = 0> <#list imageKeys as key> <#assign swatchProduct = imageMap.get(key)> <#if swatchProduct?has_content && indexer < maxIndex> <#assign imageUrl = Static["org.ofbiz.product.product.ProductContentWrapper"].getProductContentAsText(swatchProduct, "SMALL_IMAGE_URL", request)?if_exists> <#if !imageUrl?has_content> <#assign imageUrl = productContentWrapper.get("SMALL_IMAGE_URL")?if_exists> </#if> <#if !imageUrl?has_content> <#assign imageUrl = "/images/defaultImage.jpg"> </#if> <td align="center" valign="bottom"> <a href="javascript:getList('FT${featureOrderFirst}','${indexer}',1);"><img src="<@ofbizContentUrl>${contentPathPrefix?if_exists}${imageUrl}</@ofbizContentUrl>" border="0" width="60" height="60"></a> <br/> <a href="javascript:getList('FT${featureOrderFirst}','${indexer}',1);" class="buttontext">${key}</a> </td> </#if> <#assign indexer = indexer + 1> </#list> <#if (indexer > maxIndex)> <div class="tabletext"><b>More options available in drop down.</b></div> </#if> </tr> </table> </#if> </td> </tr> <tr><td colspan="2"><hr class='sepbar'></td></tr> <#-- Long description of product --> <tr> <td colspan="2"> <div class="tabletext">${productContentWrapper.get("LONG_DESCRIPTION")?if_exists}</div> </td> </tr> <tr><td colspan="2"><hr class='sepbar'></td></tr> <#-- Any attributes/etc may go here --> <#-- Product Configurator --> <tr> <td colspan="2"> <form name="configform" method="post" action="<@ofbizUrl>product<#if requestAttributes._CURRENT_VIEW_?exists>/${requestAttributes._CURRENT_VIEW_}</#if></@ofbizUrl>"> <input type='hidden' name='add_product_id' value='${product.productId}'> <input type='hidden' name='add_category_id' value=''> <input type='hidden' name='quantity' value='1'> <input type='hidden' name='product_id' value='${product.productId}'> <table > <tr> <td> <div class="tabletext"> <a href="javascript:verifyConfig();" class="buttontext">${uiLabelMap.OrderVerifyConfiguration}</a> </div> </td> </tr> <tr><td><hr></td></tr> <#assign counter = 0> <#assign questions = configwrapper.questions> <#list questions as question> <tr> <td> <div class="tableheadtext">${question.question}</div> <#if question.isFirst()> <a name='#${question.getConfigItem().getString("configItemId")}'></a> <div class="tabletext">${question.description?if_exists}</div> <#assign instructions = question.content.get("INSTRUCTIONS")?if_exists> <#if instructions?has_content> <a href="javascript:alert('${instructions}');" class="buttontext">Instructions</a> </#if> <#assign image = question.content.get("IMAGE_URL")?if_exists> <#if image?has_content> <img src='<@ofbizContentUrl>${contentPathPrefix?if_exists}${image?if_exists}</@ofbizContentUrl>' vspace='5' hspace='5' border='0' width='200' align='left'> </#if> <#else> <div class="tabletext"><a href='#${question.getConfigItem().getString("configItemId")}' class="buttontext">Details</a></div> </#if> </td> </tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -