#1 2009-03-15 22:53

mirus
Пользователь

Предустановленные значения доп. характеристик

В каталоге при добавлении товара в окне дополнительных характеристик имеются определенные параметры-производитель, вес, габариты,...

Как осуществить следущее????:чтобы при вводе произвольных значений выпадал список из предустановленных значений...например чтоб не вводить каждый раз в админке производителя, а просто из списка выпадающего выбрать его. но при этом оставить ввод произвольных значений

почему не подходит предуставленный в WA третий вариант-Выбор из предустановленных значений.потому что пользователь не должен выбирать производителя как опцию.а должен видеть его статичным текстом.а в админке в произвольных значениях очень бы не помешала функция предустановленного списка

Неактивен

 

#2 2009-11-13 11:31

Hunter
Пользователь

Re: Предустановленные значения доп. характеристик

решил новую тему не создавать, напишу тут.
Мне тоже нужно чтобы Доп характеристики выводились в виде текста простой таблички (а не в виде выпадающих значений:
--------------------------------------
Характеристика1 | Значение1
--------------------------------------
Характеристика2 | Значение2
--------------------------------------
Характеристика3 | Значение3
--------------------------------------

Какой файл копать?

Неактивен

 

#3 2009-11-13 12:06

Vladislav
Webasyst

Re: Предустановленные значения доп. характеристик

шаблон product_params_selectable.html

Неактивен

 

#4 2009-11-13 12:53

Hunter
Пользователь

Re: Предустановленные значения доп. характеристик

спасибо, вот бьюсь с ним сейчас...
может подскажете как из этого куска:
   

Код:

        <td>
            {counter name=select_counter assign=_cnt}
            <select name='option_{$_cnt}' class="product_option">
            <option value='' rel="0">{"str_not_defined"|translate|escape:'html'}</option>
            {section name=j loop=$product_extra[i].values_to_select}
            <option value='{$product_extra[i].values_to_select[j].variantID}' rel='{$product_extra[i].values_to_select[j].price_surplus}'
            {if $product_extra[i].values_to_select[j].variantID == $product_extra[i].variantID}selected="selected"{/if}>
                {$product_extra[i].values_to_select[j].option_value}
            </option>
            {/section}
            </select>
        </td>

оставить переменную, которая в виде обычного текста выводила бы один или несколько (ну хотябы один) выбранный selectable-параметр соответствующей доп. характеристики, которая отмечена в админке галкой из значений списка доп. параметров товара?

Или таки одной переменной не обойдется и нужно условие оставлять?
Ведь по умолчанию в выпадающих списках стоит значение "Не определено" и возможно выбрать параметры, а мне надо чтобы этот(эти) параметр(ры) сразу выводились обычным текстом.
Спасибо

Отредактировано Hunter (2009-11-13 12:56)

Неактивен

 

#5 2009-11-13 13:01

rat
Администратор

Re: Предустановленные значения доп. характеристик

Если изменить

Код:

{section name=k loop=$product_extra[i].option_show_times}
    <tr>                    
        <td>
            {$product_extra[i].name|escape:'html'}{if $product_extra[i].option_show_times > 1 }({counter name=option_show_times}):{else}:{/if}
        </td>
        <td>
            {counter name=select_counter assign=_cnt}
            <select name='option_{$_cnt}' class="product_option">
            <option value='' rel="0">{"str_not_defined"|translate|escape:'html'}</option>
            {section name=j loop=$product_extra[i].values_to_select}
            <option value='{$product_extra[i].values_to_select[j].variantID}' rel='{$product_extra[i].values_to_select[j].price_surplus}'
            {if $product_extra[i].values_to_select[j].variantID == $product_extra[i].variantID}selected="selected"{/if}>
                {$product_extra[i].values_to_select[j].option_value}
            </option>
            {/section}
            </select>
        </td>
    </tr>
    {/section}

на

Код:

{section name=k loop=$product_extra[i].option_show_times}
<tr>
    <td>
        {$product_extra[i].name|escape:'html'}{if $product_extra[i].option_show_times > 1 }({counter name=option_show_times}):{else}:{/if}
    </td>
    <td>
        {counter name=select_counter assign=_cnt}
        <!--select name='option_{$_cnt}' class="product_option">
        <option value='' rel="0">{"str_not_defined"|translate|escape:'html'}</option-->
        {section name=j loop=$product_extra[i].values_to_select}
        <!--option value='{$product_extra[i].values_to_select[j].variantID}' rel='{$product_extra[i].values_to_select[j].price_surplus}'
        {if $product_extra[i].values_to_select[j].variantID == $product_extra[i].variantID}selected="selected"{/if}-->
            {$product_extra[i].values_to_select[j].option_value}<br />
        <!--/option-->
        {/section}
------------<br />
        <!--/select-->
    </td>
</tr>
{/section}

получится примерно то, что нужно?

Неактивен

 

#6 2009-11-13 13:24

Hunter
Пользователь

Re: Предустановленные значения доп. характеристик

о да, огромное спасибо!
это то что нужно

в идеале бы еще такое реализовать, чтобы табличка выводилась по определенному условию, что мол для данного товара, лежащего в определенной категории, выводились бы не все возможные (их очень много будет и все они разношерстные для разных типов товара) а только определенные доп. характеристики, относящиеся только к этому типу товаров, но направление решения вы уже подсказали в другой теме

Будем разбираться

Неактивен

 

#7 2009-11-13 13:38

Hunter
Пользователь

Re: Предустановленные значения доп. характеристик

не хватает знаний, как в эту конструкцию доп. условие вывода типа того, что вы предложили:

Код:

{section name=i loop=$definedOptions}
{if $products[0].categoryID eq 3418 && ($definedOptions[i].optionID eq 21 || $definedOptions[i].optionID eq 22 || $definedOptions[i].optionID eq 24)} <!-- условие -->
<tr>
    <td class="cmp_headers">{$definedOptions[i].name}</td>
    {counter name="_id" assign=_id}
    {section name=j loop=$products}
    <td class="cmp_column_{cycle values='odd,even' name=5+$_id}">
        {$products[j][i]}
    </td>
    {/section}
</tr>
{/if} <!-- условие -->
{/section}

вставить?

Пробовал по-разному, не отсеивается как нужно, может с синтаксисом у меня траблы?
Не поможете?

Отредактировано Hunter (2009-11-13 13:39)

Неактивен

 

#8 2009-11-13 14:34

rat
Администратор

Re: Предустановленные значения доп. характеристик

Синтаксис вроде нормальный, если, кроме условия в коде ничего больше не меняли - может, разве, номера опций и категории неверно указали в коде, потому и не отсеивается?

Неактивен

 

#9 2009-11-13 16:47

Hunter
Пользователь

Re: Предустановленные значения доп. характеристик

сдаюсь, в листе сравнения это работает, лишнее отсеивается, а в подробном описании не хочет:

Код:

<table cellspacing="1" cellpadding="5" border="1" bordercolor="1">
{counter name='select_counter' start=0 skip=1 print=false assign='select_counter_var'}
{section name=i loop=$product_extra}
    {if $product_extra[i].option_type != 0 }

{if $products[0].categoryID eq 3418 && ($definedOptions[i].optionID eq 21 || $definedOptions[i].optionID eq 22 || $definedOptions[i].optionID eq 24)} <!-- условие -->

{section name=k loop=$product_extra[i].option_show_times}
<tr>
    <td>
        {$product_extra[i].name|escape:'html'}{if $product_extra[i].option_show_times > 1 }({counter name=option_show_times}):{else}:{/if}
    </td>
    <td>
        {counter name=select_counter assign=_cnt}
        <!--select name='option_{$_cnt}' class="product_option">
        <option value='' rel="0">{"str_not_defined"|translate|escape:'html'}</option-->
        {section name=j loop=$product_extra[i].values_to_select}
        <!--option value='{$product_extra[i].values_to_select[j].variantID}' rel='{$product_extra[i].values_to_select[j].price_surplus}'
        {if $product_extra[i].values_to_select[j].variantID == $product_extra[i].variantID}selected="selected"{/if}-->
            {$product_extra[i].values_to_select[j].option_value}<br />
        <!--/option-->
        {/section}
        <!--/select-->
    </td>
</tr>
{/section}


{/if} <!-- условие -->


    {/if}
{/section}
</table>

номера опций и категорий правильные

Отредактировано Hunter (2009-11-13 16:48)

Неактивен

 

#10 2009-11-13 17:07

rat
Администратор

Re: Предустановленные значения доп. характеристик

А что должно отсеиваться на странице с подробным описанием товара? Вроде бы, если у характеристики нет значения, она и так не отображается.

Неактивен

 

#11 2009-11-16 13:20

Hunter
Пользователь

Re: Предустановленные значения доп. характеристик

да, большое спасибо Rat.
Разобрался во всем.

Еще маленький вопрос, как сделать чтобы при выводе доп. характеристик на Странице детального описания товара выводились в HTML а не Text?
А то в листе сравнения как нужно мне оформляю html'ом - все красиво отображается а в детальном описании видны тэги...

Отредактировано Hunter (2009-11-16 13:34)

Неактивен

 

#12 2009-11-16 14:13

rat
Администратор

Re: Предустановленные значения доп. характеристик

Попробуйте в файле /published/SC/html/scripts/core_functions/product_functions.php в функции GetExtraParametrs заменить строку

Код:

$_Row['values_to_select'][$i]['option_value'] = xHtmlSpecialChars($_Rowue['option_value']);

на

Код:

$_Row['values_to_select'][$i]['option_value'] = $_Rowue['option_value'];

Неактивен

 

#13 2009-11-16 14:28

Hunter
Пользователь

Re: Предустановленные значения доп. характеристик

спасибо, то что надо

Неактивен

 

#14 2010-07-26 12:41

polzovatel
Пользователь

Re: Предустановленные значения доп. характеристик

Сделал так, как описал уважаемый Rat в посте № 5. Действительно, на странице подробного описания товара появились его доп характеристики не в виде выпадающих списков, а в виде простых строк. Это хорошо. Но! Теперь на странице категорий товара появились его доп характеристики, причем в неприемлемом виде выпадающих списков!

Как сделать так, что бы и на странице категорий товара дополнительные свойства отображались в виде простых строк?
Как сделать так, что бы на странице категорий товара отображались только некоторые, определенные мной, доп характеристики?

Заранее спасибо за ответ.

Отредактировано polzovatel (2010-07-26 13:15)

Неактивен

 

#15 2010-07-26 15:42

rat
Администратор

Re: Предустановленные значения доп. характеристик

В файле published/SC/html/scripts/templates/frontend/product_brief.html меняем

Код:

<select name='option_{$_cnt}' class="product_option">
<option value='' rel="0">{"str_not_defined"|translate|escape:'html'}</option>
{section name=j loop=$product_info.product_extra[i].values_to_select}
<option value='{$product_info.product_extra[i].values_to_select[j].variantID}' rel='{$product_info.product_extra[i].values_to_select[j].price_surplus}'
{if $product_info.product_extra[i].values_to_select[j].variantID == $product_info.product_extra[i].variantID}selected="selected"{/if}>
    {$product_info.product_extra[i].values_to_select[j].option_value}
</option>
{/section}
</select>

на

Код:

<!--select name='option_{$_cnt}' class="product_option">
<option value='' rel="0">{"str_not_defined"|translate|escape:'html'}</option-->
{section name=j loop=$product_info.product_extra[i].values_to_select}
{if $product_info.product_extra[i].optionID eq 1 || $product_info.product_extra[i].optionID eq 7}
<!--option value='{$product_info.product_extra[i].values_to_select[j].variantID}' rel='{$product_info.product_extra[i].values_to_select[j].price_surplus}'
{if $product_info.product_extra[i].values_to_select[j].variantID == $product_info.product_extra[i].variantID}selected="selected"{/if}-->
    {$product_info.product_extra[i].values_to_select[j].option_value}<br/>
<!--/option-->
{/if}
{/section}
<!--/select-->

и формируем свое условие с номерами характеристик в строке

Код:

{if $product_info.product_extra[i].optionID eq 1 || $product_info.product_extra[i].optionID eq 7}

Неактивен

 

#16 2010-07-26 19:31

polzovatel
Пользователь

Re: Предустановленные значения доп. характеристик

и формируем свое условие с номерами характеристик в строке

Код:

{if $product_info.product_extra[i].optionID eq 1 || $product_info.product_extra[i].optionID eq 7}

Например мне нужно вывести характеристику номер 1 и номер 2. Как сформировать условие?

Пишу {if $product_info.product_extra[i].optionID eq 1 || $product_info.product_extra[i].optionID eq 2} - ничего не получается. Уж подскажите пожалуйста, раньше с такой проблемой не сталкивался.

Большое спасибо.

Отредактировано polzovatel (2010-07-26 19:34)

Неактивен

 

#17 2010-07-27 12:02

rat
Администратор

Re: Предустановленные значения доп. характеристик

Номера характеристик нужно узнавать не по порядку их отображения на сайте, а по номеру в базе данных. Как вариант - по адресу ссылки для удаления доп. характеристики в разделе "Продукты -> Доп. характеристики".

Неактивен

 

#18 2010-07-27 13:33

polzovatel
Пользователь

Re: Предустановленные значения доп. характеристик

Нашел ID опции при наведении курсора на иконку удаления в разделе "Продукты-> Доп характеристики". Например там написано ID=16 и вторая опция ID=17. Теперь пишу условие вот так {if $product_info.product_extra[i].optionID=16 || $product_info.product_extra[i].optionID=17}. В результате отображается перечень всех имеющихся у меня допхарактеристик без самих значений этих характеристик. smile
А мне нужно выводит только Марка автомобиля (ID=17) и Место установки(ID=16).
Я опять где-то ошибся?

Отредактировано polzovatel (2010-07-28 09:35)

Неактивен

 

#19 2010-07-27 14:39

rat
Администратор

Re: Предустановленные значения доп. характеристик

Покажите аналогичный фрагмент кода в своем файле - посмотрим.

Неактивен

 

#20 2010-07-27 17:50

polzovatel
Пользователь

Re: Предустановленные значения доп. характеристик

Ок. Вот код:

<!--select name='option_{$_cnt}' class="product_option">
<option value='' rel="0">{"str_not_defined"|translate|escape:'html'}</option-->
{section name=j loop=$product_info.product_extra[i].values_to_select}

{if $product_info.product_extra[i].optionID=16 || $product_info.product_extra[i].optionID=17}

<!--option value='{$product_info.product_extra[i].values_to_select[j].variantID}' rel='{$product_info.product_extra[i].values_to_select[j].price_surplus}'
{if $product_info.product_extra[i].values_to_select[j].variantID == $product_info.product_extra[i].variantID}selected="selected"{/if}-->
    {$product_info.product_extra[i].values_to_select[j].option_value}<br/>
<!--/option-->
{/if}
{/section}
<!--/select-->

Так надо?

Неактивен

 

#21 2010-07-27 17:56

Vladislav
Webasyst

Re: Предустановленные значения доп. характеристик

= — оператор присвоения
== — оператор сравнения
eq — оператор сравнения в шаблоне

Неактивен

 

#22 2010-07-27 18:18

polzovatel
Пользователь

Re: Предустановленные значения доп. характеристик

Vladislav написал:

= — оператор присвоения
== — оператор сравнения
eq — оператор сравнения в шаблоне

Вижу знаешь. Ну тогда подскажи, мне то как писать? Попробовал все варианты, ничего не отображается.

Отредактировано polzovatel (2010-07-27 18:40)

Неактивен

 

#23 2010-07-28 13:44

polzovatel
Пользователь

Re: Предустановленные значения доп. характеристик

Никто не подскажет?

Неактивен

 

#24 2010-07-28 14:26

mousia
Пользователь

Re: Предустановленные значения доп. характеристик

Вам же уже подсказали, куда еще? Обратите внимание на строку:
{if $product_info.product_extra[i].optionID=16 || $product_info.product_extra[i].optionID=17}
Здесь нет присвоения, зато есть сравнение.

Неактивен

 

#25 2010-07-28 16:13

rat
Администратор

Re: Предустановленные значения доп. характеристик

mousia написал:

Вам же уже подсказали, куда еще? Обратите внимание на строку:
{if $product_info.product_extra[i].optionID=16 || $product_info.product_extra[i].optionID=17}
Здесь нет присвоения, зато есть сравнение.

Наоборот?

Код:

{if $product_info.product_extra[i].optionID eq 16 || $product_info.product_extra[i].optionID eq 17}

Неактивен

 

Board footer

Powered by PunBB