Перейти к содержимому


Скрытие корзины, если не выбрана характеристика


  • Вы не можете ответить в тему
В теме одно сообщение

#1 zcz

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 104 сообщений
Репутация: 62
Продвинутый

Отправлено 06 September 2012 - 10:01 AM

Здравствуйте. Данный модуль, если его вообще можно назвать модулем, делался под заказ.
Смысл модуля таков, что пока посетитель не выберет из выпадающего списка храрктеристик значение, то кнопка "в корзину" не будет показываться.

Инструкция:
Открываем файл product_brief.tpl.html
в нем находим форму name="MainForm1_{$product_info.productID}"
в ней видим 2 варианта select. в select`ах находим
onChange="GetCurrentCurrency_{$product_info.productID}();"
заменяем на
onChange="GetPar_{$product_info.productID}(); GetCurrentCurrency_{$product_info.productID}();"

ищем в этом же файле (в стандартном шаблоне чуть ниже этой формы)
function GetCurrentCurrency_{$product_info.productID}() внутри JS

перед закрывающим тегом </script> вставляем

function GetPar_{$product_info.productID}()
{literal}{{/literal}
{counter name='select_counter2' start=1 skip=1 print=false assign='select_counter_var2'}
{section name=i loop=$product_info.product_extra}
{section name=k loop=$product_info.product_extra[i].option_show_times}
	dsp = document.MainForm1_{$product_info.productID}.option_select_{$select_counter_var2}_{$product_info.productID}.value;
{/section}	
{/section}	
	if (dsp == "0:1"){literal}{{/literal}
		document.getElementById('GetP_{$product_info.categoryID}').style.display="none";
	{literal}}{/literal}
	else{literal}{{/literal}
		document.getElementById('GetP_{$product_info.categoryID}').style.display="block";
	{literal}}{/literal}
{literal}}{/literal}

Сразу должен внести поправочку - данный способ работает в том случае, когда у вас есть вариант характеристики "не выбрано" или что-то в этом роде. строка if (dsp == "0:1") проверяет value у select`a (если данная переменная у вас не рована 0:1, то замените ее на нужное значение).

Далее ищем в этом же файле форму с корзиной (name="HiddenFieldsForm_{$product_info.productID}")

вставляем перед ней
<div id="GetP_{$product_info.categoryID}" style="display: none;">
и после окончания формы, соответственно закрываем
</div>

Для product_brief закончили.

теперь перейдем к product_detailed.tpl.html

Аналогично форму с корзиной заключаем в
<div id="GetP" style="display: none;"> </div>
Для селектов харктеристик в onCange добавляем GetPar();
В скрипт перед </script>
вставляем

function GetPar()
{literal}{{/literal}
{counter name='select_counter2' start=1 skip=1 print=false assign='select_counter_var2'}
{section name=i loop=$product_extra}
{section name=k loop=$product_extra[i].option_show_times}
	dsp = document.MainForm.option_select_{$select_counter_var2}.value;
{counter name=select_counter2}	
{/section}	
{/section}	
	if (dsp == "0:1"){literal}{{/literal}
		document.getElementById('GetP').style.display="none";
	{literal}}{/literal}
	else{literal}{{/literal}
		document.getElementById('GetP').style.display="block";
	{literal}}{/literal}
{literal}}{/literal}

По поводу строки if (dsp == "0:1"), аналогичное замечание, как и для product_brief

Вот в общем-то и все. Спасибо за внимание.
  • 0
Пишу, устанавливаю, натягиваю))) pix-art.ru

#2 zcz

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 104 сообщений
Репутация: 62
Продвинутый

Отправлено 07 September 2012 - 07:26 AM

небольшое дополнение для этого мода, на случай, если есть товары без выбора характеристик:
в product_brief.tpl.html в самый низ, перед последним {/if}
вставляем
<script type="text/javascript" language="JavaScript">  
if (document.getElementById('Tes_{$product_info.productID}'))
{literal}
{
{/literal}
document.getElementById('GetP_{$product_info.categoryID}').style.display="none";
{literal}
}
{/literal}
else
{literal}
{
{/literal}
document.getElementById('GetP_{$product_info.categoryID}').style.display="block";
{literal}
}
{/literal}
</script>

для select`ов делаем
id="Tes_{$product_info.productID}"

в product_detailed.tpl.html

после
{if $product_info.description}{$product_info.description}{elseif $product_info.brief_description}{$product_info.brief_description}{/if}
,
вставляем
<script type="text/javascript" language="JavaScript">  
if (document.getElementById('Tes'))
{literal}
{
{/literal}
document.getElementById('GetP').style.display="none";
{literal}
}
{/literal}
else
{literal}
{
{/literal}
document.getElementById('GetP').style.display="block";
{literal}
}
{/literal}
</script>

для select`ов делаем
id="Tes"

  • 1
Пишу, устанавливаю, натягиваю))) pix-art.ru