#1
Отправлено 08 April 2014 - 08:10 AM
Возникла необходимость скрыть одну из валют магазина. Каким образом это можно сделать?
К примеру магазин продает в украинских гривнах и в российских рублях, но есть еще доллар США (нужен для быстрой корректировки всех цен в магазине).
Вот как раз его и нужно скрыть. В смысле, чтобы человек не мог сделать заказ именно в $ США.
Раньше, когда было две валюты в магазине, это сделать было проще. К примеру, устанавливалась одна валюта (гривны) по умолчанию, а блок с выбором валюты просто удалялся.
Как теперь можно сделать, чтобы человек мог выбрать либо рубли, либо гривны, а доллар был скрыт?
Подскажите пожалуйста.
p.s. Поиском по форуму вроде как не нашел информацию по этому вопросу.
#3
Отправлено 08 April 2014 - 04:30 PM
#4
Отправлено 28 April 2014 - 07:42 AM
Самое простое - напрямую в шаблоне блока выбора валют сделать один if для того, чтобы вариант выбранной не отображался. ИМХО самое простое решение. Второй вариант добавить в таблицу в БД еще одно поле для видимости + обработки в к нему.
Есть такая вот форма выбора отображаемой валюты.
<form method="post" action="" name='ChangeCurrencyForm' id='ChangeCurrencyForm'> <font color="#126396"><b>Отображать цены в валюте</b></font> <select name='current_currency' onchange='_changeCurrency()'> {section name=d loop=$currencies} <option value='{$currencies[d].CID}' {if $currencies[d].CID eq $current_currency} selected {/if}>{$currencies[d].Name}</option> {/section} </select> {if $order}<input type="hidden" name="InvId" value="{$order.orderID}">{/if} </form>
Подскажите пожалуйста где и как правильно прописать это условие IF, для того чтобы скрыть валюту с id 0 ?
Пробовал просто делать с выбором и перечислением валют в select но почему то не правильно отображается валюта тогда.
#5
Отправлено 28 April 2014 - 12:45 PM
Прежде всего где Вы взяли валюту с CID=0?Подскажите пожалуйста где и как правильно прописать это условие IF, для того чтобы скрыть валюту с id 0 ?
Изначально при инсталляции (см. currencies.sql) прописывается пять валют с CID от единицы до пяти.
Поле это автоинкрементное и штатным путем (добавляя-удаляя валюты) получить CID=0 невозможно.
Условие-то проще простого:
{if $currencies[d].CID != 0}<option...></option>{/if}только оно бессмысленно, т.к CID всегда не равен нулю .
#6
Отправлено 28 April 2014 - 06:40 PM
Подскажите пожалуйста где и как правильно прописать это условие IF, для того чтобы скрыть валюту с id 0 ?
определить нужный Id легко, достаточно просто навести на ссылку удалить в настройках валют и посмотреть на id
<form method="post" action="" name='ChangeCurrencyForm' id='ChangeCurrencyForm'> <font color="#126396"><b>Отображать цены в валюте</b></font> <select name='current_currency' onchange='_changeCurrency()'> {section name=d loop=$currencies} {if $currencies[d].CID != 0}<option value='{$currencies[d].CID}' {if $currencies[d].CID eq $current_currency} selected {/if}>{$currencies[d].Name}</option>{/if} {/section} </select> {if $order}<input type="hidden" name="InvId" value="{$order.orderID}">{/if} </form>
Так же никто не мешает фильтровать по имени валюты ( ниже пример, как скрыть две валюты)
<form method="post" action="" name='ChangeCurrencyForm' id='ChangeCurrencyForm'> <font color="#126396"><b>Отображать цены в валюте</b></font> <select name='current_currency' onchange='_changeCurrency()'> {section name=d loop=$currencies} {if $currencies[d].Name != "Рубли" && $currencies[d].Name != "Доллары" }<option value='{$currencies[d].CID}' {if $currencies[d].CID eq $current_currency} selected {/if}>{$currencies[d].Name}</option>{/if} {/section} </select> {if $order}<input type="hidden" name="InvId" value="{$order.orderID}">{/if} </form>
#7
Отправлено 28 April 2014 - 08:15 PM
Я почему то думал что в select отсчет всегда начинается с 0. Поэтому и нужно скрывать валюту с нулевым значением, верней с CID=0.Прежде всего где Вы взяли валюту с CID=0?
Изначально при инсталляции (см. currencies.sql) прописывается пять валют с CID от единицы до пяти.
Поле это автоинкрементное и штатным путем (добавляя-удаляя валюты) получить CID=0 невозможно.
p.s. Так как у меня в магазине все привязано к $США то конечный результат (спсб постам выше) выглядит теперь вот так:
<form method="post" action="" name='ChangeCurrencyForm' id='ChangeCurrencyForm'> <font color="#126396"><b>Отображать цены в валюте</b></font> <select name='current_currency' onchange='_changeCurrency()'> {section name=d loop=$currencies} {if $currencies[d].CID != 1}<option value='{$currencies[d].CID}' {if $currencies[d].CID eq $current_currency} selected {/if}>{$currencies[d].Name}</option>{/if} {/section} </select> {if $order}<input type="hidden" name="InvId" value="{$order.orderID}">{/if} </form>
#8
Отправлено 28 April 2014 - 08:56 PM
Причем тут <select>? CID это идентификатор валюты в SQL-таблице валют.Я почему то думал что в select отсчет всегда начинается с 0. Поэтому и нужно скрывать валюту с нулевым значением, верней с CID=0.
PS. Итить... "Я уже три года пользуюсь молотком, подскажите, с какой стороны за него браться?"
#9
Отправлено 02 May 2014 - 10:00 PM