Новый плагин "Передача заказов из корзин Турбо-страниц"Подробнее
Полезная информация

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

Поддержка Bodysite
Поддержка Bodysite
28 апреля 2019 16:12
+2

Плагин интегрирован в тему дизайна «MegaShop 2.0». Размещение кода из инструкции не требуется.

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

Для корректной работы основного функционала плагина SEO-фильтр обязательно соблюдение и настройка п.1,2,3. Остальные пункты настраиваются при необходимости.

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

Убедитесь, что название категории расположено в блоке с классом '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>

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

Для замены ссылок в постраничной навигации, необходимо внести изменения в тему дизайна.

Откройте файл 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)}

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

Для замены ссылок в сортировке, необходимо внести изменения в тему дизайна.

Откройте файл list-thumbs.html найдите и замените код:

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

на:

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

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

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

Откройте файл 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>

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

В шаблоне 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)

6. Генерация sitemap по расписанию (Сron)

Добавьте расписание в панели своего хостинга:

* * * * * php /var/www/web/sites/megashop2.bodysite.ru/cli.php shop seofilterGenerateSitemap


* - если указанные шаблоны отсутствуют в Вашей теме дизайна обратитесь к разработчику сайта или темы дизайна.