Fabsh Posted March 18, 2012 Share Posted March 18, 2012 Und der nächste Punkt der irgendwie nicht zu lösen ist. Ich nutze Prestashop 1.3.1.1 Da ich einen Shirtshop betreibe möchte ich über diesen natürlich Shirts verkaufen. Wenn ich bei den Attributen die Grössen eingebe S , M , L , XL wirds mir dann bei der Produktauswahl so dargestellt. L , M , S , XL gibt es eine Möglichkeit das es im Shop selbst richtig dargestellt wird? Link to comment Share on other sites More sharing options...
guest* Posted March 18, 2012 Share Posted March 18, 2012 Prestashop sortiert alphabetisch. Kannst du nur mit einem extra Modul lösen, oder am Code selbst Hand anlegen. Sorry, bin kein Coder, kann mit einem Codeschnippel nicht dienen. Link to comment Share on other sites More sharing options...
guest* Posted March 18, 2012 Share Posted March 18, 2012 Habe einen Link im Tschechischen Forum gefunden. Vl. hilft dir die Code-Änderung weiter (ist in Englischer Sprache). Soweit ich verstanden habe, einfach die Datei dort downloaden und im angegebenen Ordner speichern. in deiner product.tpl Datei das ergänzen: {foreach from=$groups|sortby"-name, #id" key=id_attribute_group item=group} Ich kann es leider nicht testen, da ich ein anderes Tool verwende, wo ich die Reihenfolge von Farbe und größe selbst festlegen kann. Probier es einfach aus. Es überschreibt dir keine Datei. Klappt es nicht, dann die Datei wieder löschen... Beachte aber bitte diesen POST, wenn du Änderungen an tpl-Dateien durchgeführt hast: Link to comment Share on other sites More sharing options...
Fabsh Posted March 18, 2012 Author Share Posted March 18, 2012 Hmm tut sich nicht wirklich was. Hab den Code so verändert. Den Code schnippsel hab ich ans Ende gestellt. Ich find aber bei dem tschechischen Post nicht wirklich was da ich da die Product TPL verändern soll {include file=$tpl_dir./errors.tpl} {if $errors|@count == 0} <script type="text/javascript"> // <![CDATA[ // PrestaShop internal settings var currencySign = '{$currencySign|html_entity_decode:2:"UTF-8"}'; var currencyRate = '{$currencyRate|floatval}'; var currencyFormat = '{$currencyFormat|intval}'; var currencyBlank = '{$currencyBlank|intval}'; var taxRate = {$product->tax_rate|floatval}; var jqZoomEnabled = {if $jqZoomEnabled}true{else}false{/if}; //JS Hook var oosHookJsCodeFunctions = new Array(); // Parameters var id_product = '{$product->id|intval}'; var productHasAttributes = {if isset($groups)}true{else}false{/if}; var quantitiesDisplayAllowed = {if $display_qties == 1}true{else}false{/if}; var quantityAvailable = {if $display_qties == 1 && $product->quantity}{$product->quantity}{else}0{/if}; var allowBuyWhenOutOfStock = {if $allow_oosp == 1}true{else}false{/if}; var availableNowValue = '{$product->available_now|escape:'quotes':'UTF-8'}'; var availableLaterValue = '{$product->available_later|escape:'quotes':'UTF-8'}'; var productPriceWithoutReduction = {$product->getPriceWithoutReduct()|default:'null'}; var reduction_percent = {if $product->reduction_percent}{$product->reduction_percent}{else}0{/if}; var reduction_price = {if $product->reduction_percent}0{else}{$product->getPrice(true, $smarty.const.NULL, 2, $smarty.const.NULL, true)}{/if}; var reduction_from = '{$product->reduction_from}'; var reduction_to = '{$product->reduction_to}'; var group_reduction = '{$group_reduction}'; var default_eco_tax = {$product->ecotax}; var currentDate = '{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}'; var maxQuantityToAllowDisplayOfLastQuantityMessage = {$last_qties}; var noTaxForThisProduct = {if $no_tax == 1}true{else}false{/if}; var displayPrice = {$priceDisplay}; var productReference = '{$product->reference|escape:'htmlall':'UTF-8'}'; // Customizable field var img_ps_dir = '{$img_ps_dir}'; var customizationFields = new Array(); {assign var='imgIndex' value=0} {assign var='textFieldIndex' value=0} {foreach from=$customizationFields item='field' name='customizationFields'} {assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} customizationFields[{$smarty.foreach.customizationFields.index|intval}] = new Array(); customizationFields[{$smarty.foreach.customizationFields.index|intval}][0] = '{if $field.type|intval == 0}img{$imgIndex++}{else}textField{$textFieldIndex++}{/if}'; customizationFields[{$smarty.foreach.customizationFields.index|intval}][1] = {if $field.type|intval == 0 AND $pictures.$key}2{else}{$field.required|intval}{/if}; {/foreach} // Images var img_prod_dir = '{$img_prod_dir}'; var combinationImages = new Array(); {foreach from=$combinationImages item='combination' key='combinationId' name='f_combinationImages'} combinationImages[{$combinationId}] = new Array(); {foreach from=$combination item='image' name='f_combinationImage'} combinationImages[{$combinationId}][{$smarty.foreach.f_combinationImage.index}] = {$image.id_image|intval}; {/foreach} {/foreach} combinationImages[0] = new Array(); {foreach from=$images item='image' name='f_defaultImages'} combinationImages[0][{$smarty.foreach.f_defaultImages.index}] = {$image.id_image}; {/foreach} // Translations var doesntExist = '{l s='The product does not exist in this model. Please choose another.' js=1}'; var doesntExistNoMore = '{l s='This product is no longer in stock' js=1}'; var doesntExistNoMoreBut = '{l s='with those attributes but is available with others' js=1}'; var uploading_in_progress = '{l s='Uploading in progress, please wait...' js=1}'; var fieldRequired = '{l s='Please fill all required fields' js=1}'; {if isset($groups)} // Combinations {foreach from=$combinations key=idCombination item=combination} addCombination({$idCombination|intval}, new Array({$combination.list}), {$combination.quantity}, {$combination.price}, {$combination.ecotax}, {$combination.id_image}, '{$combination.reference|addslashes}'); {/foreach} // Colors {if $colors|@count > 0} {if $product->id_color_default}var id_color_default = {$product->id_color_default|intval};{/if} {/if} {/if} //]]> </script> {include file=$tpl_dir./breadcrumb.tpl} <div id="primary_block" class="clearfix"> <h2>{$product->name|escape:'htmlall':'UTF-8'}</h2> {if $confirmation} <p class="confirmation"> {$confirmation} </p> {/if} <!-- right infos--> <div id="pb-right-column"> <!-- product img--> <div id="image-block"> {if $have_image} <img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large')}" {if $jqZoomEnabled}class="jqzoom" alt="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox')}"{else} title="{$product->name|escape:'htmlall':'UTF-8'}" alt="{$product->name|escape:'htmlall':'UTF-8'}" {/if} id="bigpic"/> {else} <img src="{$img_prod_dir}{$lang_iso}-default-large.jpg" alt="" title="{$product->name|escape:'htmlall':'UTF-8'}" /> {/if} </div> {if count($images) > 0} <!-- thumbnails --> <div id="views_block" {if count($images) < 2}class="hidden"{/if}> {if count($images) > 3}<span class="view_scroll_spacer"><a id="view_scroll_left" class="hidden" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Previous'}</a></span>{/if} <div id="thumbs_list"> <ul style="width: {math equation="width * nbImages" width=80 nbImages=$images|@count}px" id="thumbs_list_frame"> {foreach from=$images item=image name=thumbnails} {assign var=imageIds value=`$product->id`-`$image.id_image`} <li id="thumbnail_{$image.id_image}"> <a href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox')}" rel="other-views" class="thickbox {if $smarty.foreach.thumbnails.first}shown{/if}" title="{$image.legend|htmlspecialchars}"> <img id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'medium')}" alt="{$image.legend|htmlspecialchars}" height="{$mediumSize.height}" width="{$mediumSize.width}" /> </a> </li> {/foreach} </ul> </div> {if count($images) > 3}<a id="view_scroll_right" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Next'}</a>{/if} </div> {/if} {if count($images) > 1}<p class="align_center clear"><a id="resetImages" href="{$link->getProductLink($product)}" style="display:none;" onclick="$('a#resetImages').hide('slow');return (false);">{l s='Display all pictures'}</a></p>{/if} <!-- usefull links--> <ul id="usefull_link_block"> {if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if} <li><a href="javascript:print();">{l s='Print'}</a><br class="clear" /></li> {if $have_image && !$jqZoomEnabled} <li><span id="view_full_size" class="span_link">{l s='View full size'}</span></li> {/if} </ul> </div> <!-- left infos--> <div id="pb-left-column"> {if $product->description_short OR $packItems|@count > 0} <div id="short_description_block"> {if $product->description_short} <div id="short_description_content" class="rte align_justify">{$product->description_short}</div> {/if} {if $product->description} <p class="buttons_bottom_block"><a href="javascript:{ldelim}{rdelim}" class="button">{l s='More details'}</a></p> {/if} {if $packItems|@count > 0} <h3>{l s='Pack content'}</h3> {foreach from=$packItems item=packItem} <div class="pack_content"> {$packItem.pack_quantity} x <a href="{$link->getProductLink($packItem.id_product, $packItem.link_rewrite, $packItem.category)}">{$packItem.name|escape:'htmlall':'UTF-8'}</a> <p>{$packItem.description_short}</p> </div> {/foreach} {/if} </div> {/if} {if $colors} <!-- colors --> <div id="color_picker"> <p>{l s='Pick a color:' js=1}</p> <div class="clear"></div> <ul id="color_to_pick_list"> {foreach from=$colors key='id_attribute' item='color'} <li><a id="color_{$id_attribute|intval}" class="color_pick" style="background: {$color.value};" onclick="updateColorSelect({$id_attribute|intval});$('#resetImages').show('slow');" title="{$color.name}">{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$color.name}" width="20" height="20" />{/if}</a></li> {/foreach} </ul> <a id="color_all" onclick="updateColorSelect(0);$('a#resetImages').hide('slow');" title="{l s='Cancel'}"><img src="{$img_dir}icon/cancel.gif" alt="{l s='Cancel'}" /></a> <div class="clear"></div> </div> {/if} <!-- add to cart form--> <form id="buy_block" action="{$base_dir}cart.php" method="post"> <!-- hidden datas --> <p class="hidden"> <input type="hidden" name="token" value="{$static_token}" /> <input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" /> <input type="hidden" name="add" value="1" /> <input type="hidden" name="id_product_attribute" id="idCombination" value="" /> </p> <!-- prices --> <p class="price"> {if $product->on_sale} <img src="{$img_dir}onsale_{$lang_iso}.gif" alt="{l s='On sale'}" class="on_sale_img"/> <span class="on_sale">{l s='On sale!'}</span> {elseif ($product->reduction_price != 0 || $product->reduction_percent != 0) && ($product->reduction_from == $product->reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product->reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product->reduction_from))} <span class="discount">{l s='Price lowered!'}</span> {/if} <br /> <span class="our_price_display"> {if !$priceDisplay || $priceDisplay == 2} <span id="our_price_display">{convertPrice price=$product->getPrice(true, $smarty.const.NULL)}</span> {if $tax_enabled}{l s='tax incl.'}{/if} {/if} {if $priceDisplay == 1} <span id="our_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {if $tax_enabled}{l s='tax excl.'}{/if} {/if} </span> {if $priceDisplay == 2} <br /> <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}</span> {/if} <br /> </p> {if ($product->reduction_price != 0 || $product->reduction_percent != 0) && ($product->reduction_from == $product->reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product->reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product->reduction_from))} <p id="old_price"><span class="bold"> {if !$priceDisplay || $priceDisplay == 2} <span id="old_price_display">{convertPrice price=$product->getPriceWithoutReduct()}</span> {if $tax_enabled}{l s='tax incl.'}{/if} {/if} {if $priceDisplay == 1} <span id="old_price_display">{convertPrice price=$product->getPriceWithoutReduct(true)}</span> {if $tax_enabled}{l s='tax excl.'}{/if} {/if} </span> </p> {/if} {if $product->reduction_percent != 0 && ($product->reduction_from == $product->reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product->reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product->reduction_from))} <p id="reduction_percent">{l s='(price reduced by'} <span id="reduction_percent_display">{$product->reduction_percent|floatval}</span> %{l s=')'}</p> {/if} {if $packItems|@count} <p class="pack_price">{l s='instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p> <br class="clear" /> {/if} {if $product->ecotax != 0} <p class="price-ecotax">{l s='include'} <span id="ecotax_price_display">{convertPrice price=$product->ecotax}</span> {l s='for green tax'}</p> {/if} {if isset($groups)} <!-- attributes --> <div id="attributes"> {foreach from=$groups key=id_attribute_group item=group} <p> <label for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label> {assign var='groupName' value='group_'|cat:$id_attribute_group} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" onchange="javascript:findCombination();{if $colors|@count > 0}$('#resetImages').show('slow');{/if}"> {foreach from=$group.attributes key=id_attribute item=group_attribute} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}">{$group_attribute|escape:'htmlall':'UTF-8'}</option> {/foreach} </select> </p> {/foreach} </div> {/if} <p id="product_reference" {if isset($groups) OR !$product->reference}style="display:none;"{/if}><label for="product_reference">{l s='Reference :'} </label><span class="editable">{$product->reference|escape}</span></p> <!-- quantity wanted --> <p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity == 0) || $virtual} style="display:none;"{/if}> <label>{l s='Quantity :'}</label> <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" /> </p> <!-- availability --> <p id="availability_statut"{if ($product->quantity == 0 && !$product->available_later) OR ($product->quantity != 0 && !$product->available_now)} style="display:none;"{/if}> <span id="availability_label">{l s='Availability:'}</span> <span id="availability_value"{if $product->quantity == 0} class="warning-inline"{/if}> {if $product->quantity == 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if} </span> </p> <!-- number of item in stock --> <p id="pQuantityAvailable"{if $display_qties != 1 || $product->quantity == 0} style="display:none;"{/if}> <span id="quantityAvailable">{$product->quantity|intval}</span> <span{if $product->quantity > 1} style="display:none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}</span> <span{if $product->quantity == 1} style="display:none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}</span> </p> <!-- Out of stock hook --> <p id="oosHook"{if $product->quantity > 0} style="display:none;"{/if}> {$HOOK_PRODUCT_OOS} </p> <p class="warning-inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity == 0) || $allow_oosp} style="display:none;"{/if} >{l s='Warning: Last items in stock!'}</p> <p{if !$allow_oosp && $product->quantity == 0} style="display:none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p> {if $HOOK_PRODUCT_ACTIONS} {$HOOK_PRODUCT_ACTIONS} {/if} </form> {if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if} </div> </div> {if $quantity_discounts} <!-- quantity discount --> <ul class="idTabs"> <li><a style="cursor: pointer">{l s='Quantity discount'}</a></li> </ul> <div id="quantityDiscount"> <table class="std"> <tr> {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'} <th>{$quantity_discount.quantity|intval} {if $quantity_discount.quantity|intval > 1} {l s='quantities'} {else} {l s='quantity'} {/if} </th> {/foreach} </tr> <tr> {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'} <td> {if $quantity_discount.id_discount_type|intval == 1} -{$quantity_discount.value|floatval}% {else} -{convertPrice price=$quantity_discount.value|floatval} {/if} </td> {/foreach} </tr> </table> </div> {/if} {$HOOK_PRODUCT_FOOTER} <!-- description and features --> {if $product->description || $features || $accessories || $HOOK_PRODUCT_TAB || $attachments} <div id="more_info_block" class="clear"> <ul id="more_info_tabs" class="idTabs idTabsShort"> {if $product->description}<li><a id="more_info_tab_more_info" href="#idTab1">{l s='More info'}</a></li>{/if} {if $features}<li><a id="more_info_tab_data_sheet" href="#idTab2">{l s='Data sheet'}</a></li>{/if} {if $attachments}<li><a id="more_info_tab_attachments" href="#idTab9">{l s='Download'}</a></li>{/if} {if isset($accessories) AND $accessories}<li><a href="#idTab4">{l s='Accessories'}</a></li>{/if} {$HOOK_PRODUCT_TAB} </ul> <div id="more_info_sheets" class="sheets align_justify"> {if $product->description} <!-- full description --> <div id="idTab1" class="rte">{$product->description}</div> {/if} {if $features} <!-- product's features --> <ul id="idTab2" class="bullet"> {foreach from=$features item=feature} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li> {/foreach} </ul> {/if} {if $attachments} <ul id="idTab9" class="bullet"> {foreach from=$attachments item=attachment} <li><a href="{$base_dir}attachment.php?id_attachment={$attachment.id_attachment}">{$attachment.name|escape:'htmlall':'UTF-8'}</a><br />{$attachment.description|escape:'htmlall':'UTF-8'}</li> {/foreach} </ul> {/if} {if isset($accessories) AND $accessories} <!-- accessories --> <ul id="idTab4" class="bullet"> <div class="block products_block accessories_block clearfix"> <div class="block_content"> <ul> {foreach from=$accessories item=accessory name=accessories_list} {assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)} <li class="ajax_block_product {if $smarty.foreach.accessories_list.first}first_item{elseif $smarty.foreach.accessories_list.last}last_item{else}item{/if} product_accessories_description"> <h5><a href="{$accessoryLink|escape:'htmlall':'UTF-8'}">{$accessory.name|truncate:22:'...':true|escape:'htmlall':'UTF-8'}</a></h5> <p class="product_desc"> <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{$accessory.legend|escape:'htmlall':'UTF-8'}" class="product_image"><img src="{$link->getImageLink($accessory.link_rewrite, $accessory.id_image, 'medium')}" alt="{$accessory.legend|escape:'htmlall':'UTF-8'}" /></a> <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='More'}" class="product_description">{$accessory.description_short|strip_tags|truncate:100:'...'}</a> </p> <p class="product_accessories_price"> <span class="price">{displayWtPrice p=$accessory.price}</span> <a class="button" href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a> <a class="exclusive button ajax_add_to_cart_button" href="{$base_dir}cart.php?qty=1&id_product={$accessory.id_product|intval}&token={$static_token}&add" rel="ajax_id_product_{$accessory.id_product|intval}" title="{l s='Add to cart'}">{l s='Add to cart'}</a> </p> </li> {/foreach} </ul> </div> </div> </ul> {/if} {$HOOK_PRODUCT_TAB_CONTENT} </div> </div> {/if} <!-- Customizable products --> {if $product->customizable} <ul class="idTabs"> <li><a style="cursor: pointer">{l s='Product customization'}</a></li> </ul> <div class="customization_block"> <form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm"> <p> <img src="{$img_dir}icon/infos.gif" alt="Informations" /> {l s='After saving your customized product, do not forget to add it to your cart.'} {if $product->uploadable_files}<br />{l s='Allowed file formats are: GIF, JPG, PNG'}{/if} </p> {if $product->uploadable_files|intval} <h2>{l s='Pictures'}</h2> <ul id="uploadable_files"> {counter start=0 assign='customizationField'} {foreach from=$customizationFields item='field' name='customizationFields'} {if $field.type == 0} <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} {if isset($pictures.$key)}<div class="customizationUploadBrowse"><img src="{$pic_dir}{$pictures.$key}_small" alt="" /><a href="{$link->getUrlWith('deletePicture', $field.id_customization_field)}"><img src="{$img_dir}icon/delete.gif" alt="{l s='delete'}" class="customization_delete_icon" /></a></div>{/if} <div class="customizationUploadBrowse"><input type="file" name="file{$field.id_customization_field}" id="img{$customizationField}" class="customization_block_input {if isset($pictures.$key)}filled{/if}" />{if $field.required}<sup>*</sup>{/if} <div class="customizationUploadBrowseDescription">{if !empty($field.name)}{$field.name}{else}{l s='Please select an image file from your hard drive'}{/if}</div></div> </li> {counter} {/if} {/foreach} </ul> {/if} <div class="clear"></div> {if $product->text_fields|intval} <h2>{l s='Texts'}</h2> <ul id="text_fields"> {counter start=0 assign='customizationField'} {foreach from=$customizationFields item='field' name='customizationFields'} {if $field.type == 1} <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} {if !empty($field.name)}{$field.name}{/if}<input type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" value="{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}" class="customization_block_input" />{if $field.required}<sup>*</sup>{/if} </li> {counter} {/if} {/foreach} </ul> {/if} <p style="clear: left;" id="customizedDatas"> <input type="hidden" name="quantityBackup" id="quantityBackup" value="" /> <input type="hidden" name="submitCustomizedDatas" value="1" /> <input type="button" class="button" value="{l s='Save'}" onclick="javascript:saveCustomization()" /> </p> </form> <p class="clear required"><sup>*</sup> {l s='required fields'}</p> </div> {/if} {if $packItems|@count > 0} <div> <h2>{l s='Pack content'}</h2> {include file=$tpl_dir./product-list.tpl products=$packItems} </div> {/if} {/if} {foreach from=$groups|sortby"-name, #id" key=id_attribute_group item=group} Link to comment Share on other sites More sharing options...
guest* Posted March 18, 2012 Share Posted March 18, 2012 in deiner product.tpl Datei die letze Zeile vom nachstehend Block austauschen gegen: {foreach from=$groups|sortby"-name, #id" key=id_attribute_group item=group} Hier in diesem Block: <label for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label> {assign var='groupName' value='group_'|cat:$id_attribute_group} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" onchange="javascript:findCombination();{if $colors|@count > 0}$('#resetImages').show('slow');{/if}"> {foreach from=$group.attributes key=id_attribute item=group_attribute} Und die eine Download-Datei in den Ordner /tools/smarty deponieren. Link to comment Share on other sites More sharing options...
Fabsh Posted March 19, 2012 Author Share Posted March 19, 2012 So hab den Fehler gefunden warum sich gar nichts bei mir getan hatte. Ich hatte die falsche Product TPL bearbeitet. Und zwar die unter Modules Edit. Hab jetzt die richtige gefunden und zwar unter Themes. Dort habe ich den Code verändert und jetzt habe ich beim Auswahl Feld gar nix mehr. Das heißt dort wo man die Grössen auswählen könnte sind nun leere Felder. Hier der veränderte Code, evtl hab ich ja wieder was falsch gemacht. {include file=$tpl_dir./errors.tpl} {if $errors|@count == 0} <script type="text/javascript"> // <![CDATA[ // PrestaShop internal settings var currencySign = '{$currencySign|html_entity_decode:2:"UTF-8"}'; var currencyRate = '{$currencyRate|floatval}'; var currencyFormat = '{$currencyFormat|intval}'; var currencyBlank = '{$currencyBlank|intval}'; var taxRate = {$product->tax_rate|floatval}; var jqZoomEnabled = {if $jqZoomEnabled}true{else}false{/if}; //JS Hook var oosHookJsCodeFunctions = new Array(); // Parameters var id_product = '{$product->id|intval}'; var productHasAttributes = {if isset($groups)}true{else}false{/if}; var quantitiesDisplayAllowed = {if $display_qties == 1}true{else}false{/if}; var quantityAvailable = {if $display_qties == 1 && $product->quantity}{$product->quantity}{else}0{/if}; var allowBuyWhenOutOfStock = {if $allow_oosp == 1}true{else}false{/if}; var availableNowValue = '{$product->available_now|escape:'quotes':'UTF-8'}'; var availableLaterValue = '{$product->available_later|escape:'quotes':'UTF-8'}'; var productPriceWithoutReduction = {$product->getPriceWithoutReduct()|default:'null'}; var reduction_percent = {if $product->reduction_percent}{$product->reduction_percent}{else}0{/if}; var reduction_price = {if $product->reduction_percent}0{else}{$product->getPrice(true, $smarty.const.NULL, 2, $smarty.const.NULL, true)}{/if}; var reduction_from = '{$product->reduction_from}'; var reduction_to = '{$product->reduction_to}'; var group_reduction = '{$group_reduction}'; var default_eco_tax = {$product->ecotax}; var currentDate = '{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}'; var maxQuantityToAllowDisplayOfLastQuantityMessage = {$last_qties}; var noTaxForThisProduct = {if $no_tax == 1}true{else}false{/if}; var displayPrice = {$priceDisplay}; var productReference = '{$product->reference|escape:'htmlall':'UTF-8'}'; // Customizable field var img_ps_dir = '{$img_ps_dir}'; var customizationFields = new Array(); {assign var='imgIndex' value=0} {assign var='textFieldIndex' value=0} {foreach from=$customizationFields item='field' name='customizationFields'} {assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} customizationFields[{$smarty.foreach.customizationFields.index|intval}] = new Array(); customizationFields[{$smarty.foreach.customizationFields.index|intval}][0] = '{if $field.type|intval == 0}img{$imgIndex++}{else}textField{$textFieldIndex++}{/if}'; customizationFields[{$smarty.foreach.customizationFields.index|intval}][1] = {if $field.type|intval == 0 AND $pictures.$key}2{else}{$field.required|intval}{/if}; {/foreach} // Images var img_prod_dir = '{$img_prod_dir}'; var combinationImages = new Array(); {foreach from=$combinationImages item='combination' key='combinationId' name='f_combinationImages'} combinationImages[{$combinationId}] = new Array(); {foreach from=$combination item='image' name='f_combinationImage'} combinationImages[{$combinationId}][{$smarty.foreach.f_combinationImage.index}] = {$image.id_image|intval}; {/foreach} {/foreach} combinationImages[0] = new Array(); {foreach from=$images item='image' name='f_defaultImages'} combinationImages[0][{$smarty.foreach.f_defaultImages.index}] = {$image.id_image}; {/foreach} // Translations var doesntExist = '{l s='The product does not exist in this model. Please choose another.' js=1}'; var doesntExistNoMore = '{l s='This product is no longer in stock' js=1}'; var doesntExistNoMoreBut = '{l s='with those attributes but is available with others' js=1}'; var uploading_in_progress = '{l s='Uploading in progress, please wait...' js=1}'; var fieldRequired = '{l s='Please fill all required fields' js=1}'; {if isset($groups)} // Combinations {foreach from=$combinations key=idCombination item=combination} addCombination({$idCombination|intval}, new Array({$combination.list}), {$combination.quantity}, {$combination.price}, {$combination.ecotax}, {$combination.id_image}, '{$combination.reference|addslashes}'); {/foreach} // Colors {if $colors|@count > 0} {if $product->id_color_default}var id_color_default = {$product->id_color_default|intval};{/if} {/if} {/if} //]]> </script> {include file=$tpl_dir./breadcrumb.tpl} <div id="primary_block" class="clearfix"> <h2>{$product->name|escape:'htmlall':'UTF-8'}</h2> {if $confirmation} <p class="confirmation"> {$confirmation} </p> {/if} <!-- right infos--> <div id="pb-right-column"> <!-- product img--> <div id="image-block"> {if $have_image} <img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large')}" {if $jqZoomEnabled}class="jqzoom" alt="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox')}"{else} title="{$product->name|escape:'htmlall':'UTF-8'}" alt="{$product->name|escape:'htmlall':'UTF-8'}" {/if} id="bigpic"/> {else} <img src="{$img_prod_dir}{$lang_iso}-default-large.jpg" alt="" title="{$product->name|escape:'htmlall':'UTF-8'}" /> {/if} </div> {if count($images) > 0} <!-- thumbnails --> <div id="views_block" {if count($images) < 2}class="hidden"{/if}> {if count($images) > 3}<span class="view_scroll_spacer"><a id="view_scroll_left" class="hidden" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Previous'}</a></span>{/if} <div id="thumbs_list"> <ul style="width: {math equation="width * nbImages" width=80 nbImages=$images|@count}px" id="thumbs_list_frame"> {foreach from=$images item=image name=thumbnails} {assign var=imageIds value=`$product->id`-`$image.id_image`} <li id="thumbnail_{$image.id_image}"> <a href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox')}" rel="other-views" class="thickbox {if $smarty.foreach.thumbnails.first}shown{/if}" title="{$image.legend|htmlspecialchars}"> <img id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'medium')}" alt="{$image.legend|htmlspecialchars}" height="{$mediumSize.height}" width="{$mediumSize.width}" /> </a> </li> {/foreach} </ul> </div> {if count($images) > 3}<a id="view_scroll_right" title="{l s='Other views'}" href="javascript:{ldelim}{rdelim}">{l s='Next'}</a>{/if} </div> {/if} {if count($images) > 1}<p class="align_center clear"><a id="resetImages" href="{$link->getProductLink($product)}" style="display:none;" onclick="$('a#resetImages').hide('slow');return (false);">{l s='Display all pictures'}</a></p>{/if} <!-- usefull links--> <ul id="usefull_link_block"> {if $HOOK_EXTRA_LEFT}{$HOOK_EXTRA_LEFT}{/if} <li><a href="javascript:print();">{l s='Print'}</a><br class="clear" /></li> {if $have_image && !$jqZoomEnabled} <li><span id="view_full_size" class="span_link">{l s='View full size'}</span></li> {/if} </ul> </div> <!-- left infos--> <div id="pb-left-column"> {if $product->description_short OR $packItems|@count > 0} <div id="short_description_block"> {if $product->description_short} <div id="short_description_content" class="rte align_justify">{$product->description_short}</div> {/if} {if $product->description} <p class="buttons_bottom_block"><a href="javascript:{ldelim}{rdelim}" class="button">{l s='More details'}</a></p> {/if} {if $packItems|@count > 0} <h3>{l s='Pack content'}</h3> {foreach from=$packItems item=packItem} <div class="pack_content"> {$packItem.pack_quantity} x <a href="{$link->getProductLink($packItem.id_product, $packItem.link_rewrite, $packItem.category)}">{$packItem.name|escape:'htmlall':'UTF-8'}</a> <p>{$packItem.description_short}</p> </div> {/foreach} {/if} </div> {/if} {if $colors} <!-- colors --> <div id="color_picker"> <p>{l s='Pick a color:' js=1}</p> <div class="clear"></div> <ul id="color_to_pick_list"> {foreach from=$colors key='id_attribute' item='color'} <li><a id="color_{$id_attribute|intval}" class="color_pick" style="background: {$color.value};" onclick="updateColorSelect({$id_attribute|intval});$('#resetImages').show('slow');" title="{$color.name}">{if file_exists($col_img_dir|cat:$id_attribute|cat:'.jpg')}<img src="{$img_col_dir}{$id_attribute}.jpg" alt="{$color.name}" width="20" height="20" />{/if}</a></li> {/foreach} </ul> <a id="color_all" onclick="updateColorSelect(0);$('a#resetImages').hide('slow');" title="{l s='Cancel'}"><img src="{$img_dir}icon/cancel.gif" alt="{l s='Cancel'}" /></a> <div class="clear"></div> </div> {/if} <!-- add to cart form--> <form id="buy_block" action="{$base_dir}cart.php" method="post"> <!-- hidden datas --> <p class="hidden"> <input type="hidden" name="token" value="{$static_token}" /> <input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" /> <input type="hidden" name="add" value="1" /> <input type="hidden" name="id_product_attribute" id="idCombination" value="" /> </p> <!-- prices --> <p class="price"> {if $product->on_sale} <img src="{$img_dir}onsale_{$lang_iso}.gif" alt="{l s='On sale'}" class="on_sale_img"/> <span class="on_sale">{l s='On sale!'}</span> {elseif ($product->reduction_price != 0 || $product->reduction_percent != 0) && ($product->reduction_from == $product->reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product->reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product->reduction_from))} <span class="discount">{l s='Price lowered!'}</span> {/if} <br /> <span class="our_price_display"> {if !$priceDisplay || $priceDisplay == 2} <span id="our_price_display">{convertPrice price=$product->getPrice(true, $smarty.const.NULL)}</span> {if $tax_enabled}{l s='tax incl.'}{/if} {/if} {if $priceDisplay == 1} <span id="our_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {if $tax_enabled}{l s='tax excl.'}{/if} {/if} </span> {if $priceDisplay == 2} <br /> <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}</span> {/if} <br /> </p> {if ($product->reduction_price != 0 || $product->reduction_percent != 0) && ($product->reduction_from == $product->reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product->reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product->reduction_from))} <p id="old_price"><span class="bold"> {if !$priceDisplay || $priceDisplay == 2} <span id="old_price_display">{convertPrice price=$product->getPriceWithoutReduct()}</span> {if $tax_enabled}{l s='tax incl.'}{/if} {/if} {if $priceDisplay == 1} <span id="old_price_display">{convertPrice price=$product->getPriceWithoutReduct(true)}</span> {if $tax_enabled}{l s='tax excl.'}{/if} {/if} </span> </p> {/if} {if $product->reduction_percent != 0 && ($product->reduction_from == $product->reduction_to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $product->reduction_to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $product->reduction_from))} <p id="reduction_percent">{l s='(price reduced by'} <span id="reduction_percent_display">{$product->reduction_percent|floatval}</span> %{l s=')'}</p> {/if} {if $packItems|@count} <p class="pack_price">{l s='instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p> <br class="clear" /> {/if} {if $product->ecotax != 0} <p class="price-ecotax">{l s='include'} <span id="ecotax_price_display">{convertPrice price=$product->ecotax}</span> {l s='for green tax'}</p> {/if} {if isset($groups)} <!-- attributes --> <div id="attributes"> {foreach from=$groups key=id_attribute_group item=group} <p> <label for="group_{$id_attribute_group|intval}">{$group.name|escape:'htmlall':'UTF-8'} :</label> {assign var='groupName' value='group_'|cat:$id_attribute_group} <select name="{$groupName}" id="group_{$id_attribute_group|intval}" onchange="javascript:findCombination();{if $colors|@count > 0}$('#resetImages').show('slow');{/if}"> {foreach from=$groups|sortby"-name, #id" key=id_attribute_group item=group} <option value="{$id_attribute|intval}"{if (isset($smarty.get.$groupName) && $smarty.get.$groupName|intval == $id_attribute) || $group.default == $id_attribute} selected="selected"{/if} title="{$group_attribute|escape:'htmlall':'UTF-8'}">{$group_attribute|escape:'htmlall':'UTF-8'}</option> {/foreach} </select> </p> {/foreach} </div> {/if} <p id="product_reference" {if isset($groups) OR !$product->reference}style="display:none;"{/if}><label for="product_reference">{l s='Reference :'} </label><span class="editable">{$product->reference|escape}</span></p> <!-- quantity wanted --> <p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity == 0) || $virtual} style="display:none;"{/if}> <label>{l s='Quantity :'}</label> <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" /> </p> <!-- availability --> <p id="availability_statut"{if ($product->quantity == 0 && !$product->available_later) OR ($product->quantity != 0 && !$product->available_now)} style="display:none;"{/if}> <span id="availability_label">{l s='Availability:'}</span> <span id="availability_value"{if $product->quantity == 0} class="warning-inline"{/if}> {if $product->quantity == 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if} </span> </p> <!-- number of item in stock --> <p id="pQuantityAvailable"{if $display_qties != 1 || $product->quantity == 0} style="display:none;"{/if}> <span id="quantityAvailable">{$product->quantity|intval}</span> <span{if $product->quantity > 1} style="display:none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}</span> <span{if $product->quantity == 1} style="display:none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}</span> </p> <!-- Out of stock hook --> <p id="oosHook"{if $product->quantity > 0} style="display:none;"{/if}> {$HOOK_PRODUCT_OOS} </p> <p class="warning-inline" id="last_quantities"{if ($product->quantity > $last_qties || $product->quantity == 0) || $allow_oosp} style="display:none;"{/if} >{l s='Warning: Last items in stock!'}</p> <p{if !$allow_oosp && $product->quantity == 0} style="display:none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p> {if $HOOK_PRODUCT_ACTIONS} {$HOOK_PRODUCT_ACTIONS} {/if} </form> {if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if} </div> </div> {if $quantity_discounts} <!-- quantity discount --> <ul class="idTabs"> <li><a style="cursor: pointer">{l s='Quantity discount'}</a></li> </ul> <div id="quantityDiscount"> <table class="std"> <tr> {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'} <th>{$quantity_discount.quantity|intval} {if $quantity_discount.quantity|intval > 1} {l s='quantities'} {else} {l s='quantity'} {/if} </th> {/foreach} </tr> <tr> {foreach from=$quantity_discounts item='quantity_discount' name='quantity_discounts'} <td> {if $quantity_discount.id_discount_type|intval == 1} -{$quantity_discount.value|floatval}% {else} -{convertPrice price=$quantity_discount.value|floatval} {/if} </td> {/foreach} </tr> </table> </div> {/if} {$HOOK_PRODUCT_FOOTER} <!-- description and features --> {if $product->description || $features || $accessories || $HOOK_PRODUCT_TAB || $attachments} <div id="more_info_block" class="clear"> <ul id="more_info_tabs" class="idTabs idTabsShort"> {if $product->description}<li><a id="more_info_tab_more_info" href="#idTab1">{l s='More info'}</a></li>{/if} {if $features}<li><a id="more_info_tab_data_sheet" href="#idTab2">{l s='Data sheet'}</a></li>{/if} {if $attachments}<li><a id="more_info_tab_attachments" href="#idTab9">{l s='Download'}</a></li>{/if} {if isset($accessories) AND $accessories}<li><a href="#idTab4">{l s='Accessories'}</a></li>{/if} {$HOOK_PRODUCT_TAB} </ul> <div id="more_info_sheets" class="sheets align_justify"> {if $product->description} <!-- full description --> <div id="idTab1" class="rte">{$product->description}</div> {/if} {if $features} <!-- product's features --> <ul id="idTab2" class="bullet"> {foreach from=$features item=feature} <li><span>{$feature.name|escape:'htmlall':'UTF-8'}</span> {$feature.value|escape:'htmlall':'UTF-8'}</li> {/foreach} </ul> {/if} {if $attachments} <ul id="idTab9" class="bullet"> {foreach from=$attachments item=attachment} <li><a href="{$base_dir}attachment.php?id_attachment={$attachment.id_attachment}">{$attachment.name|escape:'htmlall':'UTF-8'}</a><br />{$attachment.description|escape:'htmlall':'UTF-8'}</li> {/foreach} </ul> {/if} {if isset($accessories) AND $accessories} <!-- accessories --> <ul id="idTab4" class="bullet"> <div class="block products_block accessories_block clearfix"> <div class="block_content"> <ul> {foreach from=$accessories item=accessory name=accessories_list} {assign var='accessoryLink' value=$link->getProductLink($accessory.id_product, $accessory.link_rewrite, $accessory.category)} <li class="ajax_block_product {if $smarty.foreach.accessories_list.first}first_item{elseif $smarty.foreach.accessories_list.last}last_item{else}item{/if} product_accessories_description"> <h5><a href="{$accessoryLink|escape:'htmlall':'UTF-8'}">{$accessory.name|truncate:22:'...':true|escape:'htmlall':'UTF-8'}</a></h5> <p class="product_desc"> <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{$accessory.legend|escape:'htmlall':'UTF-8'}" class="product_image"><img src="{$link->getImageLink($accessory.link_rewrite, $accessory.id_image, 'medium')}" alt="{$accessory.legend|escape:'htmlall':'UTF-8'}" /></a> <a href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='More'}" class="product_description">{$accessory.description_short|strip_tags|truncate:100:'...'}</a> </p> <p class="product_accessories_price"> <span class="price">{displayWtPrice p=$accessory.price}</span> <a class="button" href="{$accessoryLink|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a> <a class="exclusive button ajax_add_to_cart_button" href="{$base_dir}cart.php?qty=1&id_product={$accessory.id_product|intval}&token={$static_token}&add" rel="ajax_id_product_{$accessory.id_product|intval}" title="{l s='Add to cart'}">{l s='Add to cart'}</a> </p> </li> {/foreach} </ul> </div> </div> </ul> {/if} {$HOOK_PRODUCT_TAB_CONTENT} </div> </div> {/if} <!-- Customizable products --> {if $product->customizable} <ul class="idTabs"> <li><a style="cursor: pointer">{l s='Product customization'}</a></li> </ul> <div class="customization_block"> <form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm"> <p> <img src="{$img_dir}icon/infos.gif" alt="Informations" /> {l s='After saving your customized product, do not forget to add it to your cart.'} {if $product->uploadable_files}<br />{l s='Allowed file formats are: GIF, JPG, PNG'}{/if} </p> {if $product->uploadable_files|intval} <h2>{l s='Pictures'}</h2> <ul id="uploadable_files"> {counter start=0 assign='customizationField'} {foreach from=$customizationFields item='field' name='customizationFields'} {if $field.type == 0} <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='pictures_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} {if isset($pictures.$key)}<div class="customizationUploadBrowse"><img src="{$pic_dir}{$pictures.$key}_small" alt="" /><a href="{$link->getUrlWith('deletePicture', $field.id_customization_field)}"><img src="{$img_dir}icon/delete.gif" alt="{l s='delete'}" class="customization_delete_icon" /></a></div>{/if} <div class="customizationUploadBrowse"><input type="file" name="file{$field.id_customization_field}" id="img{$customizationField}" class="customization_block_input {if isset($pictures.$key)}filled{/if}" />{if $field.required}<sup>*</sup>{/if} <div class="customizationUploadBrowseDescription">{if !empty($field.name)}{$field.name}{else}{l s='Please select an image file from your hard drive'}{/if}</div></div> </li> {counter} {/if} {/foreach} </ul> {/if} <div class="clear"></div> {if $product->text_fields|intval} <h2>{l s='Texts'}</h2> <ul id="text_fields"> {counter start=0 assign='customizationField'} {foreach from=$customizationFields item='field' name='customizationFields'} {if $field.type == 1} <li class="customizationUploadLine{if $field.required} required{/if}">{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} {if !empty($field.name)}{$field.name}{/if}<input type="text" name="textField{$field.id_customization_field}" id="textField{$customizationField}" value="{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}" class="customization_block_input" />{if $field.required}<sup>*</sup>{/if} </li> {counter} {/if} {/foreach} </ul> {/if} <p style="clear: left;" id="customizedDatas"> <input type="hidden" name="quantityBackup" id="quantityBackup" value="" /> <input type="hidden" name="submitCustomizedDatas" value="1" /> <input type="button" class="button" value="{l s='Save'}" onclick="javascript:saveCustomization()" /> </p> </form> <p class="clear required"><sup>*</sup> {l s='required fields'}</p> </div> {/if} {if $packItems|@count > 0} <div> <h2>{l s='Pack content'}</h2> {include file=$tpl_dir./product-list.tpl products=$packItems} </div> {/if} {/if} Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now