Author: ashish
Date: Fri Nov 13 14:38:35 2009 New Revision: 835861 URL: http://svn.apache.org/viewvc?rev=835861&view=rev Log: Applied patch from jira issue OFBIZ-2984 - HTML cleanup for Product Detail page. In this patch table are removed for non tabular data and used div, and add CSS code for layout issue that created due to this cleanup. Thanks Rohit for the contribution. Modified: ofbiz/trunk/framework/images/webapp/images/ecommain.css ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl Modified: ofbiz/trunk/framework/images/webapp/images/ecommain.css URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/ecommain.css?rev=835861&r1=835860&r2=835861&view=diff ============================================================================== --- ofbiz/trunk/framework/images/webapp/images/ecommain.css (original) +++ ofbiz/trunk/framework/images/webapp/images/ecommain.css Fri Nov 13 14:38:35 2009 @@ -1029,3 +1029,46 @@ #microcart li#googleCheckoutEnabled img, #microcart li#googleCheckoutDisabled img { width: 145px; } +/*===================For ProductDetail page.===========================================*/ +#productdetail { +width: 670px; +display: inline-block; +} + +#productImageBox { +width: 770px; +border-top: 1px #BBBBBB solid; +display: inline-block; +} +div.additionalImage { +width: 200px; +} + +#detailImageBox { +float: left; +height: 800px; +width: 272px; +} +#additionalImageBox { +float: left; +width: 272px; +} + +#productDetailBox { +float: right; +height: 266px; +padding: 266px 0; +width: 200px; +} + +#addItemForm { +clear: both; +width : 600px; +border-top: 1px #BBBBBB solid; +} + +#paginationBox { +width : 600px; +border-top: 1px #BBBBBB solid; +border-bottom: 1px #BBBBBB solid; +} \ No newline at end of file Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl?rev=835861&r1=835860&r2=835861&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl (original) +++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl Fri Nov 13 14:38:35 2009 @@ -86,7 +86,7 @@ return; } else { if (isVirtual(document.addform.add_product_id.value)) { - document.location = '<@ofbizUrl>product?category_id=${categoryId?if_exists}&product_id=</@ofbizUrl>' + document.addform.add_product_id.value; + document.location = '<@ofbizUrl>product?category_id=${categoryId?if_exists}&product_id=</@ofbizUrl>' + document.addform.add_product_id.value; return; } else { document.addform.submit(); @@ -268,11 +268,9 @@ <#assign productAdditionalImage3 = productContentWrapper.get("ADDITIONAL_IMAGE_3")?if_exists /> <#assign productAdditionalImage4 = productContentWrapper.get("ADDITIONAL_IMAGE_4")?if_exists /> -<table border="0" cellpadding="2" cellspacing="0" width="100%"> <#-- Category next/previous --> <#if category?exists> - <tr> - <td colspan="2" align="right"> + <div id="paginationBox"> <#if previousProductId?exists> <a href="<@ofbizUrl>product/~category_id=${categoryId?if_exists}/~product_id=${previousProductId?if_exists}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonPrevious}</a> | </#if> @@ -280,51 +278,49 @@ <#if nextProductId?exists> | <a href="<@ofbizUrl>product/~category_id=${categoryId?if_exists}/~product_id=${nextProductId?if_exists}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonNext}</a> </#if> - </td> - </tr> + </div> </#if> - <tr><td colspan="2"><hr /></td></tr> - +<hr /> +<div id="productImageBox"> <#-- Product image/name/price --> - <tr> - <td valign="top" width="0"> + <div id="detailImageBox"> <#assign productLargeImageUrl = productContentWrapper.get("LARGE_IMAGE_URL")?if_exists /> <#-- remove the next two lines to always display the virtual image first (virtual images must exist) --> <#if firstLargeImage?has_content> <#assign productLargeImageUrl = firstLargeImage /> </#if> <#if productLargeImageUrl?string?has_content> - <a href="javascript:popupDetail();"><img id="detailImage" src="<@ofbizContentUrl>${contentPathPrefix?if_exists}${productLargeImageUrl?if_exists}</@ofbizContentUrl>" name="mainImage" vspace="5" hspace="5" border="0" width="200" /></a> + <a href="javascript:popupDetail();"><img id="detailImage" src="<@ofbizContentUrl>${contentPathPrefix?if_exists}${productLargeImageUrl?if_exists}</@ofbizContentUrl>" name="mainImage" vspace="5" hspace="5" width="200" alt="" /></a> <input type="hidden" id="originalImage" name="originalImage" value="<@ofbizContentUrl>${contentPathPrefix?if_exists}${productLargeImageUrl?if_exists}</@ofbizContentUrl>" /> </#if> <#if !productLargeImageUrl?string?has_content> - <img id="detailImage" src="/images/defaultImage.jpg" name="mainImage" /> + <img id="detailImage" src="/images/defaultImage.jpg" name="mainImage" alt="" /> </#if> - </td> - <td> + </div> + <div id="additionalImageBox"> <#if productAdditionalImage1?string?has_content> <div class="additionalImage"> - <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage1}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage1}</@ofbizContentUrl>" vspace="5" hspace="5" border="0" width="200" /></a> - </div><br /> + <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage1}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage1}</@ofbizContentUrl>" vspace="5" hspace="5" width="200" alt="" /></a> + </div> </#if> <#if productAdditionalImage2?string?has_content> <div class="additionalImage"> - <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage2}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage2}</@ofbizContentUrl>" vspace="5" hspace="5" border="0" width="200" /></a> - </div><br /> + <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage2}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage2}</@ofbizContentUrl>" vspace="5" hspace="5" width="200" alt="" /></a> + </div> </#if> <#if productAdditionalImage3?string?has_content> <div class="additionalImage"> - <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage3}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage3}</@ofbizContentUrl>" vspace="5" hspace="5" border="0" width="200" /></a> + <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage3}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage3}</@ofbizContentUrl>" vspace="5" hspace="5" width="200" alt="" /></a> </div> </#if> <#if productAdditionalImage4?string?has_content> <div class="additionalImage"> - <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage4}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage4}</@ofbizContentUrl>" vspace="5" hspace="5" border="0" width="200" /></a> + <a href="javascript:void(0);" swapDetail="<@ofbizContentUrl>${productAdditionalImage4}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${productAdditionalImage4}</@ofbizContentUrl>" vspace="5" hspace="5" width="200" alt="" /></a> </div> </#if> - </td> - <td align="right" valign="top"> + </div> + <div id="productDetailBox"> <h2>${productContentWrapper.get("PRODUCT_NAME")?if_exists}</h2> <div>${productContentWrapper.get("DESCRIPTION")?if_exists}</div> <div>${product.productId?if_exists}</div> @@ -362,7 +358,7 @@ <div>${uiLabelMap.ProductSpecialPromoPrice}: <span class="basePrice"><@ofbizCurrency amount=price.specialPromoPrice isoCode=price.currencyUsed /></span></div> </#if> <div> - <b> + <strong> <#if price.isSale?exists && price.isSale> <span class="salePrice">${uiLabelMap.OrderOnSale}!</span> <#assign priceStyle = "salePrice" /> @@ -375,7 +371,7 @@ <#if product.reservNthPPPerc?exists &&product.reservNthPPPerc != 0><br /><span class="${priceStyle}">${uiLabelMap.ProductReservNthPPPerc} <#if !product.reserv2ndPPPerc?exists || product.reserv2ndPPPerc == 0>${uiLabelMap.ProductReservSecond} <#else> ${uiLabelMap.ProductReservThird} </#if> ${uiLabelMap.CommonUntil} ${product.reservMaxPersons?if_exists}, ${uiLabelMap.ProductEach}: <@ofbizCurrency amount=product.reservNthPPPerc*price.price/100 isoCode=price.currencyUsed /></span></#if> <#if (!product.reserv2ndPPPerc?exists || product.reserv2ndPPPerc == 0) && (!product.reservNthPPPerc?exists || product.reservNthPPPerc == 0)><br />${uiLabelMap.ProductMaximum} ${product.reservMaxPersons?if_exists} ${uiLabelMap.ProductPersons}.</#if> </#if> - </b> + </strong> </div> <#if price.listPrice?exists && price.price?exists && price.price < price.listPrice> <#assign priceSaved = price.listPrice - price.price /> @@ -430,7 +426,7 @@ </#if> <#if daysToShip?exists> - <div><b>${uiLabelMap.ProductUsuallyShipsIn} <font color="red">${daysToShip}</font> ${uiLabelMap.CommonDays}!<b></div> + <div><strong>${uiLabelMap.ProductUsuallyShipsIn} ${daysToShip} ${uiLabelMap.CommonDays}!</strong></div> </#if> <#-- show tell a friend details only in ecommerce application --> @@ -438,7 +434,6 @@ <div> <a href="javascript:popUpSmall('<@ofbizUrl>tellafriend?productId=${product.productId}</@ofbizUrl>','tellafriend');" class="buttontext">${uiLabelMap.CommonTellAFriend}</a> </div> - <br /> <#if disFeatureList?exists && 0 < disFeatureList.size()> <p> </p> @@ -450,8 +445,11 @@ </#list> <div> </div> </#if> - + </div> +</div> + <div id="addItemForm"> <form method="post" action="<@ofbizUrl>additem</@ofbizUrl>" name="addform" style="margin: 0;"> + <fieldset> <#assign inStock = true /> <#-- Variant Selection --> <#if product.isVirtual?if_exists?upper_case == "Y"> @@ -470,13 +468,13 @@ </#list> <input type="hidden" name="add_product_id" value="${product.productId}" /> <div id="addCart1" style="display:none;> - <span style="white-space: nowrap;"><b>${uiLabelMap.CommonQuantity}:</b></span> + <span style="white-space: nowrap;"><strong>${uiLabelMap.CommonQuantity}:</strong></span> <input type="text" size="5" name="quantity" value="1" /> <a href="javascript:javascript:addItem();" class="buttontext"><span style="white-space: nowrap;">${uiLabelMap.OrderAddToCart}</span></a> </div> <div id="addCart2" style="display:block;> - <span style="white-space: nowrap;"><b>${uiLabelMap.CommonQuantity}:</b></span> + <span style="white-space: nowrap;"><strong>${uiLabelMap.CommonQuantity}:</strong></span> <input type="text" size="5" value="1" disabled="disabled" /> <a href="javascript:alert('Please select all features first');" class="buttontext"><span style="white-space: nowrap;">${uiLabelMap.OrderAddToCart}</span></a> @@ -493,12 +491,12 @@ </#list> <input type="hidden" name="add_product_id" value="NULL"/> <div> - <b><span id="product_id_display"> </span></b> - <b><div id="variant_price_display"> </div></b> + <strong><span id="product_id_display"> </span></strong> + <strong><div id="variant_price_display"> </div></strong> </div> <#else> <input type="hidden" name="add_product_id" value="NULL"/> - <div><b>${uiLabelMap.ProductItemOutOfStock}.</b></div> + <div><strong>${uiLabelMap.ProductItemOutOfStock}.</strong></div> <#assign inStock = false /> </#if> </#if> @@ -508,14 +506,13 @@ <#assign isStoreInventoryRequired = Static["org.ofbiz.product.store.ProductStoreWorker"].isStoreInventoryRequired(request, product) /> <#if isStoreInventoryNotAvailable> <#if isStoreInventoryRequired> - <div><b>${uiLabelMap.ProductItemOutOfStock}.</b></div> + <div><strong>${uiLabelMap.ProductItemOutOfStock}.</strong></div> <#assign inStock = false /> <#else> - <div><b>${product.inventoryMessage?if_exists}</b></div> + <div><strong>${product.inventoryMessage?if_exists}</strong></div> </#if> </#if> </#if> - </td></tr><tr><td colspan="2" align="right"> <#-- check to see if introductionDate hasnt passed yet --> <#if product.introductionDate?exists && nowTimestamp.before(product.introductionDate)> <p> </p> @@ -532,17 +529,19 @@ <#assign hiddenStyle = "hidden"/> </#if> <div id="add_amount" class="${hiddenStyle}"> - <span style="white-space: nowrap;"><b>${uiLabelMap.CommonAmount}:</b></span> + <span style="white-space: nowrap;"><strong>${uiLabelMap.CommonAmount}:</strong></span> <input type="text" size="5" name="add_amount" value=""/> </div> <#if product.productTypeId?if_exists == "ASSET_USAGE"> - <table width="100%"><tr> - <td nowrap align="right">Start Date<br/>(yyyy-mm-dd)</td><td><input type="text" size="10" name="reservStart"/><a href="javascript:call_cal_notime(document.addform.reservStart, '${nowTimestamp.toString().substring(0,10)}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"/></a></td> - <td nowrap align="right">End Date<br/>(yyyy-mm-dd)</td><td><input type="text" size="10" name="reservEnd"/><a href="javascript:call_cal_notime(document.addform.reservEnd, '${nowTimestamp.toString().substring(0,10)}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" border="0" alt="Calendar"/></a></td></tr> - <tr> + <div class="inline"> + <label>Start Date(yyyy-mm-dd)</label><input type="text" size="10" name="reservStart"/><a href="javascript:call_cal_notime(document.addform.reservStart, '${nowTimestamp.toString().substring(0,10)}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" alt="Calendar" alt="" /></a> + <label>End Date(yyyy-mm-dd)</label><input type="text" size="10" name="reservEnd"/><a href="javascript:call_cal_notime(document.addform.reservEnd, '${nowTimestamp.toString().substring(0,10)}');"><img src="<@ofbizContentUrl>/images/cal.gif</@ofbizContentUrl>" width="16" height="16" alt="Calendar" alt="" /></a> + </div> + <div> <#--td nowrap align="right">Number<br/>of days</td><td><input type="textt" size="4" name="reservLength"/></td></tr><tr><td> </td><td align="right" nowrap> </td--> - <td nowrap align="right">Number of persons</td><td><input type="text" size="4" name="reservPersons" value="2"/></td> - <td nowrap align="right">Number of rooms</td><td><input type="text" size="5" name="quantity" value="1"/></td></tr></table> + Number of persons<input type="text" size="4" name="reservPersons" value="2"/> + Number of rooms<input type="text" size="5" name="quantity" value="1"/> + </div> <#else> <input type="text" size="5" name="quantity" value="1"<#if product.isVirtual?if_exists?upper_case == "Y"> disabled="disabled"</#if> /> </#if> @@ -550,11 +549,14 @@ <a href="javascript:addItem()" class="buttontext"><span style="white-space: nowrap;">${uiLabelMap.OrderAddToCart}</span></a> </#if> </#if> + </fieldset> </form> + </div> <div> <#if sessionAttributes.userLogin?has_content && sessionAttributes.userLogin.userLoginId != "anonymous"> <hr /> <form name="addToShoppingList" method="post" action="<@ofbizUrl>addItemToShoppingList<#if requestAttributes._CURRENT_VIEW_?exists>/${requestAttributes._CURRENT_VIEW_}</#if></@ofbizUrl>"> + <fieldset> <input type="hidden" name="productId" value="${product.productId}" /> <input type="hidden" name="product_id" value="${product.productId}" /> <input type="hidden" name="productStoreId" value="${productStoreId}" /> @@ -570,12 +572,13 @@ </select> <#if product.productTypeId?if_exists == "ASSET_USAGE"> - <table><tr><td> </td><td align="right">${uiLabelMap.CommonStartDate} (yyyy-mm-dd)</td><td><input type="text" size="10" name="reservStartStr" ></td><td>Number of days</td><td><input type="text" size="4" name="reservLength"></td><td> </td><td align="right">Number of persons</td><td><input type="text" size="4" name="reservPersons" value="1"></td><td align="right">Qty </td><td><input type="text" size="5" name="quantity" value="1"></td></tr></table> + ${uiLabelMap.CommonStartDate} (yyyy-mm-dd)<input type="text" size="10" name="reservStartStr" >Number of days<input type="text" size="4" name="reservLength"> Number of persons<input type="text" size="4" name="reservPersons" value="1">Qty <input type="text" size="5" name="quantity" value="1"> <#else> <input type="text" size="5" name="quantity" value="1" /> <input type="hidden" name="reservStartStr" value= "" /> </#if> <a href="javascript:addShoplistSubmit();" class="buttontext">${uiLabelMap.OrderAddToShoppingList}</a> + </fieldset> </form> <#else> <br /> ${uiLabelMap.OrderYouMust} <a href="<@ofbizUrl>checkLogin/showcart</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonBeLogged}</a> @@ -584,7 +587,7 @@ </div> <#-- Prefill first select box (virtual products only) --> <#if variantTree?exists && 0 < variantTree.size()> - <script language="JavaScript" type="text/javascript">eval("list" + "${featureOrderFirst}" + "()");</script> + <script type="text/javascript">eval("list" + "${featureOrderFirst}" + "()");</script> </#if> <#-- Swatches (virtual products only) --> @@ -592,8 +595,6 @@ <#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> @@ -606,23 +607,16 @@ <#if !imageUrl?string?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> + <a href="javascript:getList('FT${featureOrderFirst}','${indexer}',1);"><img src="<@ofbizContentUrl>${contentPathPrefix?if_exists}${imageUrl}</@ofbizContentUrl>" width="60" height="60" alt="" /></a> <br /> <a href="javascript:getList('FT${featureOrderFirst}','${indexer}',1);" class="linktext">${key}</a> - </td> </#if> <#assign indexer = indexer + 1 /> </#list> <#if (indexer > maxIndex)> - <div><b>${uiLabelMap.ProductMoreOptions}</b></div> + <div><strong>${uiLabelMap.ProductMoreOptions}</strong></div> </#if> - </tr> - </table> </#if> - </td> - </tr> -</table> <#-- Digital Download Files Associated with this Product --> <#if downloadProductContentAndInfoList?has_content> @@ -648,43 +642,25 @@ <#if averageRating?exists && (averageRating > 0) && numRatings?exists && (numRatings > 1)> <div>${uiLabelMap.OrderAverageRating}: ${averageRating} <#if numRatings?exists>(${uiLabelMap.CommonFrom} ${numRatings} ${uiLabelMap.OrderRatings})</#if></div> </#if> - <tr><td colspan="2"><hr /></td></tr> +<hr /> <#if productReviews?has_content> <#list productReviews as productReview> <#assign postedUserLogin = productReview.getRelatedOne("UserLogin") /> <#assign postedPerson = postedUserLogin.getRelatedOne("Person")?if_exists /> - <table border="0" cellpadding="0" cellspacing="0"> - <tr> - <td> - <div><b>${uiLabelMap.CommonBy}: </b><#if productReview.postedAnonymous?default("N") == "Y"> ${uiLabelMap.OrderAnonymous}<#else> ${postedPerson.firstName} ${postedPerson.lastName} </#if></div> - </td> - <td> - <div><b>${uiLabelMap.CommonAt}: </b>${productReview.postedDateTime?if_exists} </div> - </td> - <td> - <div><b>${uiLabelMap.OrderRanking}: </b>${productReview.productRating?if_exists?string}</div> - </td> - </tr> - <tr> - <td colspan="3"> + <div><strong>${uiLabelMap.CommonBy}: </strong><#if productReview.postedAnonymous?default("N") == "Y"> ${uiLabelMap.OrderAnonymous}<#else> ${postedPerson.firstName} ${postedPerson.lastName} </#if></div> + <div><strong>${uiLabelMap.CommonAt}: </strong>${productReview.postedDateTime?if_exists} </div> + <div><strong>${uiLabelMap.OrderRanking}: </strong>${productReview.productRating?if_exists?string}</div> <div> </div> - </td> - </tr> - <tr> - <td colspan="3"> <div>${productReview.productReview?if_exists}</div> - </td> - </tr> - <tr><td colspan="3"><hr /></td></tr> - </table> + <hr /> </#list> <div> - <a href="<@ofbizUrl>reviewProduct?category_id=${categoryId?if_exists}&product_id=${product.productId}</@ofbizUrl>" class="linktext">${uiLabelMap.ProductReviewThisProduct}!</a> + <a href="<@ofbizUrl>reviewProduct?category_id=${categoryId?if_exists}&product_id=${product.productId}</@ofbizUrl>" class="linktext">${uiLabelMap.ProductReviewThisProduct}!</a> </div> <#else> <div>${uiLabelMap.ProductProductNotReviewedYet}.</div> <div> - <a href="<@ofbizUrl>reviewProduct?category_id=${categoryId?if_exists}&product_id=${product.productId}</@ofbizUrl>" class="linktext">${uiLabelMap.ProductBeTheFirstToReviewThisProduct}</a> + <a href="<@ofbizUrl>reviewProduct?category_id=${categoryId?if_exists}&product_id=${product.productId}</@ofbizUrl>" class="linktext">${uiLabelMap.ProductBeTheFirstToReviewThisProduct}</a> </div> </div> </#if> @@ -709,7 +685,7 @@ ${assocProductId} </a> <#if productAssoc.reason?has_content> - - <b>${productAssoc.reason}</b> + - <strong>${productAssoc.reason}</strong> </#if> </div> ${setRequestAttribute("optProductId", assocProductId)} |
Free forum by Nabble | Edit this page |