fixed issue for product page when there is only 1 PSE

This commit is contained in:
Julien Chanseaume
2014-07-31 06:07:44 +02:00
parent cab99af210
commit 867944f06c
2 changed files with 48 additions and 43 deletions

View File

@@ -55,29 +55,30 @@ var pseManager = (function($){
combinationValue = null, combinationValue = null,
combinationValueId = null; combinationValueId = null;
// get the select for options
$("#pse-options .pse-option").each(function(){
var $option = $(this);
if ( $option.data("attribute") in PSE_COMBINATIONS){
$pse['options'][$option.data("attribute")] = $option;
$option.on("change", updateProductForm);
} else {
// not affected to this product -> remove
$option.closest(".option").remove();
}
});
// build select
for (combinationValueId in PSE_COMBINATIONS_VALUE) {
combinationValue = PSE_COMBINATIONS_VALUE[combinationValueId];
$pse.options[combinationValue[1]]
.append("<option value='" + combinationValueId + "'>"
+ combinationValue[0] + "</option>");
}
// initialization for the first default pse // initialization for the first default pse
$pse.pseId = $pse.id.val(); $pse.pseId = $pse.id.val();
if (PSE_COUNT > 1) { if (PSE_COUNT > 1) {
// get the select for options
$("#pse-options .pse-option").each(function(){
var $option = $(this);
if ( $option.data("attribute") in PSE_COMBINATIONS){
$pse['options'][$option.data("attribute")] = $option;
$option.on("change", updateProductForm);
} else {
// not affected to this product -> remove
$option.closest(".option").remove();
}
});
// build select
for (combinationValueId in PSE_COMBINATIONS_VALUE) {
combinationValue = PSE_COMBINATIONS_VALUE[combinationValueId];
$pse.options[combinationValue[1]]
.append("<option value='" + combinationValueId + "'>"
+ combinationValue[0] + "</option>");
}
setPseForm(); setPseForm();
} }
} }

View File

@@ -32,24 +32,28 @@
{block name="main-content"} {block name="main-content"}
{$product_id={product attr="id"}} {$product_id={product attr="id"}}
{$pse_count={count type="product_sale_elements" product="$product_id"}} {$pse_count=1}
{$check_availability={config key="check-available-stock" default="1"}} {$check_availability={config key="check-available-stock" default="1"}}
<div class="main"> <div class="main">
{loop name="product.details" type="product" id="{product attr="id"}" limit="1" with_prev_next_info="1"} {loop name="product.details" type="product" id="{product attr="id"}" limit="1" with_prev_next_info="1"}
<article id="product" class="col-main" role="main" itemscope itemtype="http://schema.org/Product"> <article id="product" class="col-main" role="main" itemscope itemtype="http://schema.org/Product">
{$pse_count=$PSE_COUNT}
<!-- Use the meta tag to specify content that is not visible on the page in any way --> <!-- Use the meta tag to specify content that is not visible on the page in any way -->
{loop name="brand.feature" type="brand" product="{$ID}"} {loop name="brand.feature" type="brand" product="{$ID}"}
<meta itemprop="brand" content="{$TITLE}"> <meta itemprop="brand" content="{$TITLE}">
{/loop} {/loop}
{*
{loop name="isbn.feature" type="feature" product="{$ID}" title="isbn"} {loop name="isbn.feature" type="feature" product="{$ID}" title="isbn"}
{loop name="isbn.value" type="feature_value" feature="{$ID}" product="{product attr="id"}"} {loop name="isbn.value" type="feature_value" feature="{$ID}" product="{product attr="id"}"}
<meta itemprop="productID" content="isbn:{$TITLE}"> <meta itemprop="productID" content="isbn:{$TITLE}">
{/loop} {/loop}
{/loop} {/loop}
*}
<section id="product-gallery"> <section id="product-gallery">
{ifloop rel="image.main"} {ifloop rel="image.main"}
<figure class="product-image"> <figure class="product-image">
@@ -166,15 +170,15 @@
{if $pse_count > 1} {if $pse_count > 1}
{* We have more than 1 combination: custom form *} {* We have more than 1 combination: custom form *}
<fieldset id="pse-options" class="product-options"> <fieldset id="pse-options" class="product-options">
{loop name="attributes" type="attribute" product="$product_id" order="manual"} {loop name="attributes" type="attribute" product="$product_id" order="manual"}
<div class="option"> <div class="option">
<label for="option-{$ID}" class="option-heading">{$TITLE}</label> <label for="option-{$ID}" class="option-heading">{$TITLE}</label>
<div class="option-content"> <div class="option-content">
<select id="option-{$ID}" name="option-{$ID}" class="form-control pse-option" data-attribute="{$ID}"></select> <select id="option-{$ID}" name="option-{$ID}" class="form-control pse-option" data-attribute="{$ID}"></select>
</div>
</div> </div>
</div> {/loop}
{/loop} </fieldset>
</fieldset>
{/if} {/if}
<fieldset class="product-cart form-inline"> <fieldset class="product-cart form-inline">
@@ -277,19 +281,19 @@
{$combination_label=[]} {$combination_label=[]}
{$combination_values=[]} {$combination_values=[]}
{loop name="pse" type="product_sale_elements" product="{product attr="id"}"} {loop name="pse" type="product_sale_elements" product="{product attr="id"}"}
{$pse[$ID]=["id" => $ID, "isDefault" => $IS_DEFAULT, "isPromo" => $IS_PROMO, "isNew" => $IS_NEW, "ref" => "{$REF}", "ean" => "{$EAN}", "quantity" => {$QUANTITY}, "price" => "{format_number number="{$TAXED_PRICE}"} {currency attr="symbol"}", "promo" => "{format_number number="{$TAXED_PROMO_PRICE}"} {currency attr="symbol"}" ]} {$pse[$ID]=["id" => $ID, "isDefault" => $IS_DEFAULT, "isPromo" => $IS_PROMO, "isNew" => $IS_NEW, "ref" => "{$REF}", "ean" => "{$EAN}", "quantity" => {$QUANTITY}, "price" => "{format_number number="{$TAXED_PRICE}"} {currency attr="symbol"}", "promo" => "{format_number number="{$TAXED_PROMO_PRICE}"} {currency attr="symbol"}" ]}
{$pse_combination=[]} {$pse_combination=[]}
{loop name="combi" type="attribute_combination" product_sale_elements="$ID"} {loop name="combi" type="attribute_combination" product_sale_elements="$ID"}
{if ! $combination_label[$ATTRIBUTE_ID]} {if ! $combination_label[$ATTRIBUTE_ID]}
{$combination_label[$ATTRIBUTE_ID]=["name" => "{$ATTRIBUTE_TITLE}", "values" => []]} {$combination_label[$ATTRIBUTE_ID]=["name" => "{$ATTRIBUTE_TITLE}", "values" => []]}
{/if} {/if}
{if ! $combination_values[$ATTRIBUTE_AVAILABILITY_ID]} {if ! $combination_values[$ATTRIBUTE_AVAILABILITY_ID]}
{$combination_label[$ATTRIBUTE_ID]["values"][]=$ATTRIBUTE_AVAILABILITY_ID} {$combination_label[$ATTRIBUTE_ID]["values"][]=$ATTRIBUTE_AVAILABILITY_ID}
{$combination_values[$ATTRIBUTE_AVAILABILITY_ID]=["{$ATTRIBUTE_AVAILABILITY_TITLE}", $ATTRIBUTE_ID]} {$combination_values[$ATTRIBUTE_AVAILABILITY_ID]=["{$ATTRIBUTE_AVAILABILITY_TITLE}", $ATTRIBUTE_ID]}
{/if} {/if}
{$pse_combination[]=$ATTRIBUTE_AVAILABILITY_ID} {$pse_combination[]=$ATTRIBUTE_AVAILABILITY_ID}
{/loop} {/loop}
{$pse[$ID]["combinations"]=$pse_combination} {$pse[$ID]["combinations"]=$pse_combination}
{/loop} {/loop}
<script type="text/javascript"> <script type="text/javascript">
// Product sale elements // Product sale elements