Характеристики в списках товаров

Характеристики в списках товаров для Shop-Script

Характеристики, артикулы, теги — в категориях!

31 оценка

839 Р

Ваш отзыв
Установок
600+
Разработчик
Rat
Поддержка

Базовые стили для аккуратного оформления характеристик

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

table.listfeatures td {
    height: auto;
    width: auto;
    min-height: 0;
    min-width: 0;
    vertical-align: top;
    text-align: left;
}
table.listfeatures td.name {
    padding: 0 0.5em 0.5em 0;
    font-weight: bold;
}
table.listfeatures td.value {
    padding: 0 0 0.5em 0;
}





Добавление характеристик в тестовом режиме

Когда вы впервые добавляете вызов плагина в шаблон дизайна, сделайте это в тестовом режиме, чтобы не испугать посетителей сайта в ходе ваших экспериментов. Чтобы добавить вызов плагина в тестовом режиме, заключите его внутри условия {if}...{/if}, как показано в примере:

{if $wa->get('test') == 'listfeatures'}
    {shopListfeaturesPlugin::display($p, $products)}
{/if}

Чтобы просмотреть список характеристик в тестовом режиме, добавьте к URL страницы параметр ?test=listfeatures. Например, так: http://mydomain.ru/category/sales/?test=listfeatures

Когда закончите настройку и тестирование плагина, удалите теги {if}...{/if} и оставьте только вызов плагина {shopListfeaturesPlugin::display($p, $products)}.





Размещение значений характеристик на странице товара

Для этого добавьте вызов плагина в нужное место в файле product.html, как показано ниже:

{shopListfeaturesPlugin::display($product, [$product])}

С указанием номера набора характеристик, созданного в настройках плагина, этот фрагмент кода будет иметь аналогичный вид:

{shopListfeaturesPlugin::display($product, [$product], 2)}





Отображение разных наборов характеристик в разных категориях товаров

1. Создайте несколько разных наборов характеристик в настройках плагина: «Плагины → Характеристики в списках товаров».

2. В разделе «Товары → Категории» в свойствах каждой категорий товаров добавьте любой доп. параметр с номером нужного набора характеристик, например:

set_id=3

3. В редакторе дизайна в разделе «Витрина» откройте файл category.html и найдите в нём строку вида

{include file='list-thumbs.html' sorting=!empty($category.params.enable_sorting)}

и измените ее, как показано ниже:

{include file='list-thumbs.html' sorting=!empty($category.params.enable_sorting) listfeatures_set_id=$category.params.set_id|default:1}

Если у какой-то категории не указан доп. параметр set_id, то в этой категории будет отображаться 1-й набор характеристик.

4. В файле, имя которого упоминается в этой строке (например, list-thumbs.html) разместите вызов плагина вот в таком виде:

{if isset($listfeatures_set_id)}
    {shopListfeaturesPlugin::display($p, $products, $listfeatures_set_id)}
{/if}





Отображение значений характеристик, только если у товара не заполнено краткое описание

Вместо добавления стандартного вызова плагина

{shopListfeaturesPlugin::display($p, $products)}

замените код отображения краткого описания

<p itemprop="description" class="description">{strip_tags($p.summary)|truncate:100}</p>

следующим фрагментом кода:

{if $p.summary}
    <p itemprop="description" class="description">{strip_tags($p.summary)|truncate:100}</p>
{else}
    {shopListfeaturesPlugin::display($p, $products)}
{/if}





Как показать значение одной характеристики отдельно от списка остальных характеристик

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

1. Измените стандартный шаблон в настройках плагина:

{$special_feature = 'brand'}
<table class="features listfeatures{if $set.class_name|default:''} {$set.class_name}{/if}">
    <tbody>
        {foreach $features as $feature}
            {if $feature.code == $special_feature}<!-- feature start -->{/if}
            <tr{if $feature.class_names} class="{$feature.class_names}"{/if}>
                <td class="name">{$feature.name}</td>
                <td class="value">{if $feature.code == $special_feature}<!-- value start -->{/if}{$feature.values}{if $feature.code == $special_feature}<!-- value end -->{/if}</td>
            </tr>
             {if $feature.code == $special_feature}<!-- feature end -->{/if}
        {/foreach}
    </tbody>
</table>

2. В шаблоне темы дизайна выше места показа любых характеристик добавьте строку

{capture "listfeatures"}{shopListfeaturesPlugin::display($p, $products)}{/capture}

3. Для показа значения отдельной характеристики добавьте в нужном месте строку

{if preg_match('/<!-- value start -->(.+)<!-- value end -->/s', $smarty.capture.listfeatures, $m)}{$m[1]}{/if}

4. Для показа остальных характеристик добавьте в нужном месте строку

{$smarty.capture.listfeatures|regex_replace:'/<!-- feature start -->.+<!-- feature end -->/s':''}