📄 configproductdetail.ftl
字号:
<tr> <td> <#if question.isStandard()> <#-- Standard item: all the options are always included --> <#assign options = question.options> <#list options as option> <div class="tabletext">${option.description} <#if !option.isAvailable()> (*)</#if></div> </#list> <#else> <#if question.isSingleChoice()> <#-- Single choice question --> <#assign options = question.options> <#assign selectedOption = question.getSelected()?if_exists> <#assign selectedPrice = 0.0> <#if selectedOption?has_content> <#assign selectedPrice = selectedOption.getPrice()> </#if> <#-- The single choice input can be implemented with radio buttons or a select field --> <#if renderSingleChoiceWithRadioButtons?exists && "Y" == renderSingleChoiceWithRadioButtons> <#-- This is the radio button implementation --> <#if !question.isMandatory()> <div class="tabletext"><input type="radio" name='${counter}' value='<#if !question.isSelected()>checked</#if>'> No option</div> </#if> <#assign optionCounter = 0> <#list options as option> <#if showOffsetPrice?exists && "Y" == showOffsetPrice> <#assign shownPrice = option.price - selectedPrice> <#else> <#assign shownPrice = option.price> </#if> <div class="tabletext"> <input type="radio" name='${counter}' value='${optionCounter}' <#if option.isSelected() || (!question.isSelected() && optionCounter == 0 && question.isMandatory())>checked</#if>> ${option.description} <#if (shownPrice > 0)>+<@ofbizCurrency amount=shownPrice isoCode=price.currencyUsed/> </#if> <#if (shownPrice < 0)>-<@ofbizCurrency amount=(-1*shownPrice) isoCode=price.currencyUsed/> </#if> <#if !option.isAvailable()>(*)</#if> </div> <#assign optionCounter = optionCounter + 1> </#list> <#else> <#-- And this is the select box implementation --> <select name='${counter}' class='selectBox'> <#if !question.isMandatory()> <option value=''>---</option> </#if> <#assign options = question.options> <#assign optionCounter = 0> <#list options as option> <#if showOffsetPrice?exists && "Y" == showOffsetPrice> <#assign shownPrice = option.price - selectedPrice> <#else> <#assign shownPrice = option.price> </#if> <#if option.isSelected()> <#assign optionCounter = optionCounter + 1> </#if> <option value='${optionCounter}' <#if option.isSelected()>selected</#if>> ${option.description} <#if (shownPrice > 0)>+<@ofbizCurrency amount=shownPrice isoCode=price.currencyUsed/> </#if> <#if (shownPrice < 0)>-<@ofbizCurrency amount=(-1*shownPrice) isoCode=price.currencyUsed/> </#if> <#if !option.isAvailable()> (*)</#if> </option> <#assign optionCounter = optionCounter + 1> </#list> </select> </#if> <#else> <#-- Multi choice question --> <#assign options = question.options> <#assign optionCounter = 0> <#list options as option> <div class="tabletext"> <input type='CHECKBOX' name='${counter}' value='${optionCounter}' <#if option.isSelected()>checked</#if>> ${option.description} +<@ofbizCurrency amount=option.price isoCode=price.currencyUsed/><#if !option.isAvailable()> (*)</#if> </div> <#assign optionCounter = optionCounter + 1> </#list> </#if> </#if> </td> </tr> <tr><td><hr></td></tr> <#assign counter = counter + 1> </#list> </table> </form> </td> </tr> <tr><td colspan="2"><hr class='sepbar'></td></tr> <#-- Product Reviews --> <tr> <td colspan="2"> <div class="tableheadtext">${uiLabelMap.EcommerceCustomerReviews}:</div> <#if averageRating?exists && (averageRating?double > 0) && numRatings?exists && (numRatings?double > 1)> <div class="tabletext">${uiLabelMap.EcommerceAverageRating}: ${averageRating} <#if numRatings?exists>(${uiLabelMap.CommonFrom} ${numRatings} ${uiLabelMap.EcommerceRatings})</#if></div> </#if> </td> </tr> <tr><td colspan="2"><hr class='sepbar'></td></tr> <#if productReviews?has_content> <#list productReviews as productReview> <#assign postedUserLogin = productReview.getRelatedOne("UserLogin")> <#assign postedPerson = postedUserLogin.getRelatedOne("Person")?if_exists> <tr> <td colspan="2"> <table border="0" cellpadding="0" cellspacing='0'> <tr> <td> <div class="tabletext"><b>${uiLabelMap.CommonBy}: </b><#if productReview.postedAnonymous?default("N") == "Y">${uiLabelMap.EcommerceAnonymous}<#else>${postedPerson.firstName} ${postedPerson.lastName}</#if></div> </td> <td> <div class="tabletext"><b>${uiLabelMap.CommonOn}: </b>${productReview.postedDateTime?if_exists}</div> </td> <td> <div class="tabletext"><b>${uiLabelMap.EcommerceRanking}: </b>${productReview.productRating?if_exists?string}</div> </td> </tr> <tr> <td colspan="3"> <div class="tabletext"> </div> </td> </tr> <tr> <td colspan="3"> <div class="tabletext">${productReview.productReview?if_exists}</div> </td> </tr> <tr><td colspan="3"><hr class="sepbar"/></td></tr> </table> </td> </tr> </#list> <tr> <td colspan="2"> <a href="<@ofbizUrl>reviewProduct?category_id=${categoryId?if_exists}&product_id=${product.productId}</@ofbizUrl>" class="buttontext">${uiLabelMap.ProductReviewThisProduct}!</a> </td> </tr> <#else> <tr> <td colspan="2"> <div class="tabletext">${uiLabelMap.ProductProductNotReviewedYet}.</div> </td> </tr> <tr> <td colspan="2"> <a href="<@ofbizUrl>reviewProduct?category_id=${categoryId?if_exists}&product_id=${product.productId}</@ofbizUrl>" class="buttontext">${uiLabelMap.ProductBeTheFirstToReviewThisProduct}!</a> </td> </tr> </#if></table><#-- Upgrades/Up-Sell/Cross-Sell --> <#macro associated assocProducts beforeName showName afterName formNamePrefix targetRequestName> <#assign targetRequest = "product"> <#if targetRequestName?has_content> <#assign targetRequest = targetRequestName> </#if> <#if assocProducts?has_content> <tr><td> </td></tr> <tr><td colspan="2"><div class="head2">${beforeName?if_exists}<#if showName == "Y">${productValue.productName}</#if>${afterName?if_exists}</div></td></tr> <tr><td><hr class="sepbar"/></td></tr> <#list assocProducts as productAssoc> <tr><td> <div class="tabletext"> <a href='<@ofbizUrl>${targetRequest}/<#if categoryId?exists>~category_id=${categoryId}/</#if>~product_id=${productAssoc.productIdTo?if_exists}</@ofbizUrl>' class="buttontext"> ${productAssoc.productIdTo?if_exists} </a> - <b>${productAssoc.reason?if_exists}</b> </div> </td></tr> ${setRequestAttribute("optProductId", productAssoc.productIdTo)} ${setRequestAttribute("listIndex", listIndex)} ${setRequestAttribute("formNamePrefix", formNamePrefix)} <#if targetRequestName?has_content> ${setRequestAttribute("targetRequestName", targetRequestName)} </#if> <tr> <td> ${screens.render(productsummaryScreen)} </td> </tr> <#local listIndex = listIndex + 1> <tr><td><hr class="sepbar"/></td></tr> </#list> ${setRequestAttribute("optProductId", "")} ${setRequestAttribute("formNamePrefix", "")} ${setRequestAttribute("targetRequestName", "")} </#if></#macro><#assign productValue = product><#assign listIndex = 1>${setRequestAttribute("productValue", productValue)}<table > <#-- obsolete --> <@associated assocProducts=obsoleteProducts beforeName="" showName="Y" afterName=" is made obsolete by these products:" formNamePrefix="obs" targetRequestName=""/> <#-- cross sell --> <@associated assocProducts=crossSellProducts beforeName="" showName="N" afterName="You might be interested in these as well:" formNamePrefix="cssl" targetRequestName="crosssell"/> <#-- up sell --> <@associated assocProducts=upSellProducts beforeName="Try these instead of " showName="Y" afterName=":" formNamePrefix="upsl" targetRequestName="upsell"/> <#-- obsolescence --> <@associated assocProducts=obsolenscenseProducts beforeName="" showName="Y" afterName=" makes these products obsolete:" formNamePrefix="obce" targetRequestName=""/></table><#-- special cross/up-sell area using commonFeatureResultIds (from common feature product search) --><#if commonFeatureResultIds?has_content> <div class="head2">Similar Products That Might Interest You...</div> <hr class="sepbar"/> <#list commonFeatureResultIds as commonFeatureResultId> <div class="tabletext"> ${setRequestAttribute("optProductId", commonFeatureResultId)} ${setRequestAttribute("listIndex", commonFeatureResultId_index)} ${setRequestAttribute("formNamePrefix", "cfeatcssl")} <#-- ${setRequestAttribute("targetRequestName", targetRequestName)} --> ${screens.render(productsummaryScreen)} </div> <#if commonFeatureResultId_has_next> <hr class="sepbar"/> </#if> </#list></#if>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -