Плагин интегрирован в темы дизайна «MegaShop 3.0», «Mobisite 3.0», «MegaShop 2.0». Размещение кода из инструкции не требуется.
Во многих других темах дизайна плагин тоже интегрирован, подробнее об этом уточните у разработчика.
Важно! Ввиду индивидуальности и особенностей каждого Frontend-a в отдельности, мы не осуществляем интеграцию плагина в тему дизайна. Воспользуйтесь данной инструкцией или обратитесь к разработчику сайта/темы дизайна.
Для корректной работы основного функционала плагина SEO-фильтр обязательно соблюдение и настройка п.1,2,3. Остальные пункты настраиваются при необходимости.
Убедитесь, что название категории расположено в блоке с классом 'category-name', описание - в блоке с классом 'category-desc', дополнительное описание - в блоке с классом 'filter-additional-desc'! Если этих классов нет - обязательно добавьте их, иначе заголовок и описание не будут меняться динамически.
Как правило изменения вносятся в шаблоне category.html, если указанный шаблон отсутствует в Вашей теме дизайна обратитесь к разработчику сайта или темы дизайна.
1) Вывод заголовка category-name, например (приводимая конструкция может отличаться):
<div class="c-block__header"> <h1 class="c-header c-header_h1 category-name">{$category.name}</h1> </div>
2) Вывод описания category-desc, например (приводимая конструкция может отличаться):
<div class="c-content-decorator category-desc"> {if $category.description} {call wrap_tables content=$category.description} {/if} </div>
3) Вывод дополнительного описания filter-additional-desc, например (приводимая конструкция может отличаться):
<div class="c-content-decorator filter-additional-desc"> {if $category.additional_description|default:''} {call wrap_tables content=$category.additional_description} {/if} </div>
Если дополнительное описание не отображается - проверьте, установлен ли плагин "Дополнительное описание для категорий" и выключите его.
Для замены ссылок в постраничной навигации, необходимо внести изменения в тему дизайна.
Откройте файл list-thumbs.html (в вашей теме дизайна это может быть другой файл) найдите и замените код:
{wa_pagination total=$pages_count attrs='class' => "menu-h"]}
на:
{capture assign=pagination} {wa_pagination total=$pages_count attrs=['class' => "menu-h"]} {/capture} {shopSeofilterViewHelper::paginationDecorate($pagination)}
Для замены ссылок в сортировке, необходимо внести изменения в тему дизайна.
Откройте файл list-thumbs.html (в вашей теме дизайна это может быть другой файл) найдите и замените код:
{$wa->shop->sortUrl($sort, $name, $active_sort)}
на:
{shopSeofilterViewHelper::sortUrl($sort, $name, $active_sort)}
Для подстановки ссылок на фильтры необходимо внести изменения в тему дизайна.
Откройте файл category.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><input type="radio" name="{$filter.code}"{if $wa->get($filter.code)} checked{/if} value="1"> [`Yes`]</label>
на:
<label> <input type="radio" name="{$filter.code}"{if $wa->get($filter.code)} checked{/if} value="1"> {$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "1", $filter.code)} {if $radio_filter_url} <a class="filter-link" href="{$radio_filter_url}">[`Yes`]</a> {else} [`Yes`] {/if} </label>
3. Замените код:
<label><input type="radio" name="{$filter.code}"{if $wa->get($filter.code) === '0'} checked{/if} value="0"> [`No`]</label>
На:
<label> <input type="radio" name="{$filter.code}"{if $wa->get($filter.code) === '0'} checked{/if} value="0"> {$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "0", $filter.code)} {if $radio_filter_url} <a class="filter-link" href="{$radio_filter_url}">[`No`]</a> {else} [`No`] {/if} </label>
В шаблоне product.html (в вашей теме дизайна это может быть другой файл) найдите вывод характеристик товара такого содержимого:
{foreach $product.features as $f_code => $f_value} <tr{if $features[$f_code].type == 'divider'} class="divider"{/if}> <td class="name"> {$features[$f_code].name|escape} </td> <td class="value" itemprop="{$f_code|escape}"> {if is_array($f_value)} {if $features[$f_code].type == 'color'} {implode('', $f_value)} {else} {implode(', ', $f_value)} {/if} {else} {$f_value} {/if} </td> </tr> {/foreach}
В котором нужно заменить:
$product.features
на:
shopSeofilterViewHelper::wrapFeatureValues($product.features)
Для того, чтобы в хлебных крошках появлялось указание SEO-названия фильтра, нужно использовать специальный хелпер (появился с версии 2.40.0):
{shopSeofilterHelper::getSeoName()}
Пример использования в теме дизайна Дефолт 3.0:
В шаблоне main.html нужно добавить хелпер {shopSeofilterHelper::getSeoName()} в блок breadcrumbs после {/foreach}, чтобы получилось так:
{if !empty($breadcrumbs)} <nav class="breadcrumbs" itemprop="breadcrumb"> {if !$wa->globals('isMyAccount')} <a href="{$wa_app_url}">{$wa->shop->settings('name')}</a> <span class="rarr">→</span> {else} {* within My Account we exclude first node from navigation because links are on the page already *} {$breadcrumbs[0] = null} {/if} {foreach $breadcrumbs as $breadcrumb} {if $breadcrumb} <a href="{$breadcrumb.url}">{$breadcrumb.name|escape}</a> <span class="rarr">→</span> {/if} {/foreach} {shopSeofilterHelper::getSeoName()} </nav> {/if}
* - если указанные шаблоны отсутствуют в Вашей теме дизайна обратитесь к разработчику сайта или темы дизайна.
Плагин "SEO-фильтр" один из самых популярных плагинов для Webasyst, и многие разработчики тем дизайна интегрируют его самостоятельно, чтобы этого не пришлось делать пользователю.
В описаниях этих тем мы нашли информацию об интеграции плагина:
Возможно и некоторые другие, уточните у разработчика вашей темы.