support 447 Опубликовано 30 июня, 2015 Жалоба Share Опубликовано 30 июня, 2015 Делать будем на примере умных часов. http://demo.vamshop.com/product/samsung-gear-2-wild-orange.html Заменим выбор цвета в виде ссылок на dropdown меню и что б не обновлялась страница при выборе цвета, а просто можно было сразу добавить в корзину тот цвет, что выбрали. Можно взять уже изменённые файлы в конце сообщения, либо самому внести указанные правки. Открываем файл /app/Vendor/smarty/vam_plugins/function.attribute_list.php и меняем: {else if $attr.target=="PRODUCT_GROUP"} <div id="spinner"> <img src="{base_path}/img/ajax-loader.gif" alt="" width="31" height="31" /> </div> <script type="text/javascript"> $(document).ready(function () { global_spinner = $("#spinner"); }); </script> <form id="set_attr_form" method="post" action={$base_content}> {foreach from=$attr.element_list item=attr_element} {if $attr_element@first}<ul class="specs">{/if} <li>{if $attr_element.make}<b>{/if} {$attr_element.name}: {if $attr_element.make}</b>{/if} {$attr_element.values_attribute.name} <ul class="attributes"> {foreach from=$attr_element.group_attributes item=attr_val} <li> {if $attr_val.make}<b>{/if} <a class="confirm" href={$attr_val.content_chng_url} onclick=\'$("#attr{$attr_val.values_attribute.id}").attr("value","1");\'> {$attr_val.values_attribute.name} </a> <input id="attr{$attr_val.values_attribute.id}" name="data[set_attr][{$attr_val.values_attribute.id}]" type="hidden" /> {if $attr_val.make}</b>{/if} </li> {/foreach} </ul> </li> {if $attr_element@last}</ul>{/if} {/foreach} <script type="text/javascript"> $(function () { $(".confirm").click(function(){ var http_send = $(this).attr("href"); var form_data = $("#set_attr_form").serialize(); $.ajax({ type: "POST", url: http_send, data: form_data, async: true, success: function (data, textStatus) { $("#ajaxcontent").html(data);}, beforeSend: function () { global_spinner.fadeIn("fast"); }, complete: function () { /*global_spinner.fadeOut("slow");*/ } }); return false; }); }); </script> </form> {/if} на: {else if $attr.target=="PRODUCT_GROUP"} {foreach from=$attr.element_list item=attr_element} {if $attr_element@first}<ul class="specs">{/if} <li>{if $attr_element.make}<b>{/if} {$attr_element.name}: {if $attr_element.make}</b>{/if} <select class="form-control" name="select_attribute" id="select_attribute" title="Выберите цвет" required> <option value="">Выберите цвет</option> {foreach from=$attr_element.group_attributes item=attr_val} <option value="{$attr_val.content_id}">{$attr_val.values_attribute.name}</option> {/foreach} </select> </li> {if $attr_element@last}</ul>{/if} {/foreach} <script type="text/javascript"> $(function () { $("#select_attribute").change(function () { $("input[name=product_id]").val($(this).val()); }); // validate form $("#product-form{$content_id}").validate(); }); </script> {/if} Для того чтобы запретить добавление товара в корзину, если не выбран цвет, сделайте следующее. В Админке - Оформление - Шаблоны - Шаблон карточки товара поставьте метку: {attribute_list} над меткой: {/product_form} Например что б получилось вот так: {attribute_list} {/product_form} Вот как было: Вот как стало: Исправленный /app/Vendor/smarty/vam_plugins/function.attribute_list.php function.attribute_list.php Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения