Перейти к содержанию
Форум поддержки пользователей VamShop

Доп поля товаров


freebsd_admin

Рекомендуемые сообщения

код для вывода доп полей товаров:


{if $extra_fields_data}
{foreach name=aussen item=extra_fields from=$extra_fields_data}
{$extra_fields.NAME}: {$extra_fields.VALUE}<br />
{/foreach}
{/if}
[/CODE]

Как вывести конкретное поле? например есть 2 закладки на странице товара и нужно разместить часть полей в одну закладку и часть в другую.

Заранее благодарен!

Ссылка на сообщение
Поделиться на другие сайты

Наверное как-то так:

{$extra_fields_data[0].NAME}: {$extra_fields[0].VALUE}<br />{$extra_fields_data[1].NAME}: {$extra_fields[1].VALUE}<br />
[/code]

Ссылка на сообщение
Поделиться на другие сайты

Еще такой вопрос. Как сделать чтобы доп поле товара выводилось в листинге товаров?

Я так понимаю что в /includes/modules/product_info.php за доп поля отвечает код


include (DIR_WS_MODULES.FILENAME_GRADUATED_PRICE);
$extra_fields_query = vamDBquery("
SELECT pef.products_extra_fields_status as status, pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value
FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef
LEFT JOIN ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf
ON ptf.products_extra_fields_id=pef.products_extra_fields_id
WHERE ptf.products_id=". $product->data['products_id'] ." and ptf.products_extra_fields_value<>'' and (pef.languages_id='0' or pef.languages_id='".$_SESSION['languages_id']."')
ORDER BY products_extra_fields_order");
while ($extra_fields = vam_db_fetch_array($extra_fields_query,true)) {
if (! $extra_fields['status']) // show only enabled extra field
continue;

$extra_fields_data[] = array (
'NAME' => $extra_fields['name'],
'VALUE' => $extra_fields['value']
);

}

$info->assign('extra_fields_data', $extra_fields_data);
[/CODE]

Можно его как то прикрутить к product_listing.php?

Ссылка на сообщение
Поделиться на другие сайты

По умолчанию выводятся.

В шаблонах /templates/vamshop/module/product_listing/ есть такой код:


{if $module_data.EXTRA_FIELDS}
<dd class="itemDescription">
{foreach item=extra_fields from=$module_data.EXTRA_FIELDS}
{$extra_fields.NAME}: {$extra_fields.VALUE}<br />
{/foreach}
</dd>
{/if}
[/code]

Ссылка на сообщение
Поделиться на другие сайты

в данной папке только файлы product_listing_columns.html и product_listing_list.html.

Там этого кода нету, он есть в /templates/vamshop/module.product_info/product_info_v1.html

А я пытаюсь сделать чтобы одно доп поле товаров отображалось в списке товаров категории.

Ссылка на сообщение
Поделиться на другие сайты

Не знаю можно ли выкладывать ссылки, вот решение, может кому нибудь поможет.

http://oscomm.biz/index.php?showtopic=17452

Спасибо за помощь!

Ссылка на сообщение
Поделиться на другие сайты

Можно конечно.

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

Ссылка на сообщение
Поделиться на другие сайты
  • 2 weeks later...

Еще вопрос по нескольким закладкам:

Два поля для первой закладки

{$extra_fields_data[0].NAME}: {$extra_fields_data[0].VALUE}<br />{$extra_fields_data[1].NAME}: {$extra_fields_data[1].VALUE}<br />

И два поля для второй закладки

{$extra_fields_data[2].NAME}: {$extra_fields_data[2].VALUE}<br />{$extra_fields_data[3].NAME}: {$extra_fields_data[3].VALUE}<br />

Если в админке не заполнить, допустип, первое поле, то индексы смещаются.. и получается не то что нужно.

Как это подправить?

Ссылка на сообщение
Поделиться на другие сайты

А можно выводить строку доп поля даже если значение пустое? в каком файле это указывается?

Ссылка на сообщение
Поделиться на другие сайты

Так а что выводить, если нет ничего?!

Наверное смотреть в /includes/modules/product_info.php как массив (array) задаётся для доп. полей и как-то под себя править.

Ссылка на сообщение
Поделиться на другие сайты

А можно сделать проверку по имени?


{if $extra_fields_data}
{foreach name=aussen item=extra_fields from=$extra_fields_data}
{$extra_fields.NAME}: {$extra_fields.VALUE}<br />
{/foreach}
{/if}
[/CODE]

Добавить if {$extra_fields.NAME} == {#text#}

Что нибудь в этом роде.

Ссылка на сообщение
Поделиться на другие сайты

А какой синтаксис здесь используеться?

как то так?

{if $extra_fields_data}

{foreach name=aussen item=extra_fields from=$extra_fields_data}

{if $extra_fields.NAME == #text#}

{$extra_fields.NAME}: {$extra_fields.VALUE}<br />

{/if}

{/foreach}

{/if}

Ссылка на сообщение
Поделиться на другие сайты

Ну а что за #text# !?

Тогда уж и задавайте нормально условие:


[b]{if $extra_fields.NAME == 'название'}[/b]
{$extra_fields.NAME}: {$extra_fields.VALUE}<br />
[b]{/if}[/b]
[/code]

Ссылка на сообщение
Поделиться на другие сайты

когда то парился тоже над этим вопросом. делал вот так

{if $extra_fields_data}

{$extra_fields_data[0].NAME}: {$extra_fields_data[0].VALUE}

<br />

{$extra_fields_data[1].NAME}: {$extra_fields_data[1].VALUE}

<br />

{/if}

Ссылка на сообщение
Поделиться на другие сайты

merchindaiser!

Это уже установили на предыдущей странице) Индексы меняются в зависимости от того все поля вбиты или нет.

Ссылка на сообщение
Поделиться на другие сайты

Так работает:

{if $extra_fields.NAME == 'название'}

{$extra_fields.NAME}: {$extra_fields.VALUE}<br />

{/if}

Проблема в том что на сайте два языка и хотелось бы еще сделать в языковом файле метку {#some_text#} для сравнения

{if $extra_fields.NAME == '{#some_text#} '} - так не хочет работать..

Ссылка на сообщение
Поделиться на другие сайты

ну попробуйте вбить в пустое поле в админке знак пробела. .

значение будет. а вывод пустота. должно работать.

хотя не уверен на 100 процентов)

код пробела сьелся редактором)

дешево и сердито.для всех языков)

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...