Инструкция по интеграции плагина «SEO-фильтр»

Оригинальная инструкция от разработчика плагина: https://bodysite.ru/help/1039/instruktsiya-po-integratsii-plagina-seo-filtr/

Часть требуемых изменений, которая не конфликтует со штатным функционалом, уже имеется в теме "из коробки". Ниже будут описаны шаги, которые требуется выполнить самому. Нумерация пунктов из оригинальной статьи сохранена.

1. Установка заголовков и описаний

3) В теме предусмотрено 2 места для вывода описания(выбирается в настройках). Логично одно из них отдать под дополнительное описания плагина. Откройте шаблон category.html и найдите там строку:

{if $theme_settings.products_description_location eq "top" && $category.description && !waRequest::get('page',0)}
    <div class="layout-center">
        <div class="catalog-pg__descr category-desc">
            {$category.description}
        </div>
    </div>
{/if}

Замените на:

<div class="layout-center">
    <div class="catalog-pg__descr category-desc">
        {if $category.description}
            {$category.description}
        {/if}
    </div>
</div>

Это сломает опцию выбора места для описания. Теперь оно всегда будет перед списком товаров.

Далее найдите строки:

{if $theme_settings.products_description_location eq "bottom" && $category.description && !waRequest::get('page',0)}
<div class="catalog-pg__seo-text category-desc">
    {$category.description}
</div>
{/if}

Замените на:

<div class="catalog-pg__seo-text filter-additional-desc">
    {if $category.additional_description|default:''}
        {$category.additional_description}
    {/if}
</div>

2. Замена ссылок постраничной навигации

Откройте файл category.html, найдите код:

{wa_pagination total=$pages_count attrs=['class' => "pagination__list"]}

замените на:

{capture assign=pagination}
    {wa_pagination total=$pages_count attrs=['class' => "pagination__list"]}
{/capture}
{shopSeofilterViewHelper::paginationDecorate($pagination)}

3. Замена ссылок в сортировке

Откройте файл category.sorting.html найдите и замените код:

{$wa->shop->sortUrl($sort, $name, $active_sort)}

на:

{shopSeofilterViewHelper::sortUrl($sort, $name, $active_sort)}


4. Подстановка ссылок в фильтре

Откройте файл sidebar.filters.html

1. Найдите код:

{foreach $filter.values as $v_id => $v}

и чуть ниже замените код:

{$v}

на:

{$filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, $v_id, $filter.code)}
{if $filter_url}
    <a class="filter-link" href="{$filter_url}">{$v}</a>
{else}
    {$v}
{/if}


2. Замените код:

<label>
    <span>[`Yes`]</span>
    <input type="radio" name="{$filter.code}" {if $wa->get($filter.code)} checked{/if} value="1">
</label>

на:

<label>
    {$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "1", $filter.code)}
    {if $radio_filter_url}
        <span><a class="filter-link" href="{$radio_filter_url}">[`Yes`]</a></span>
    {else}
        <span>[`Yes`]</span>
    {/if}
    <input type="radio" name="{$filter.code}" {if $wa->get($filter.code)} checked{/if} value="1">
</label>


3. Замените код:

<label>
    <span>[`No`]</span>
    <input type="radio" name="{$filter.code}" {if $wa->get($filter.code) === '0'} checked{/if} value="1">
</label>

На:

<label>
    {$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "0", $filter.code)}
    {if $radio_filter_url}
        <span><a class="filter-link" href="{$radio_filter_url}">[`No`]</a></span>
    {else}
        <span>[`No`]</span>
    {/if}
    <input type="radio" name="{$filter.code}" {if $wa->get($filter.code) === '0'} checked{/if} value="1">
</label>

5. Перелинковка характеристик в карточке товара

В шаблоне product.html найдите строку:

{foreach $product.features as $f_code => $f_value}

Замените на:

{foreach shopSeofilterViewHelper::wrapFeatureValues($product.features) as $f_code => $f_value}
1 ответ
a
Леман Евгений
Programmer
#
18 сентября 2020 15:40

После нововведения с привязкой характеристик к артикулу, а не к товару, 5 пункт потерял свою актуальность. Для владельцев версии 1.2.0 и выше, 5 пункт выглядит так:


1. Откройте шаблон product.html.

2. В конце адресной строки замените product.html на system.product.html.

3. Найдите строку:

{foreach $_features as $f_code => $f_value}

замените на:

{foreach shopSeofilterViewHelper::wrapFeatureValues($_features) as $f_code => $f_value}

4. Нажмите "Сохранить" дважды. В первый раз сработает защита от перезаписи скрытых файлов. На второй раз она сдается.

Чтобы добавить комментарий, зарегистрируйтесь или войдите