19 марта 2015

Для дополнительной "перелинковки" товара в ShopScript 5 можно организовать ссылки вперед и назад с анкорами. Ссылки буду работать только в рамках одной категории. Тем не менее такая "перелинковка" поможет не только в SEO, но и просто в навигации по сайту.

{$prev = null}
{$next = null}
{$siblings = $wa->shop->products("category/`$product.category_id`")}
{foreach $siblings as $sibling}
    {if $sibling.id == $product.id}
        {$next = $sibling}
    {/if}
    {if !$next && $sibling.id != $product.id}
        {$prev = $sibling}
    {/if}
    {if $next && $sibling.id != $product.id}
        {$next = $sibling}
        {break}
    {/if}
{/foreach}
{$last_sibling = end($siblings)}
{if $last_sibling.id == $product.id}
    {$next = null}
{/if}
{if $prev || $next}
    {* шаблон *}
    <hr>
    <table class="prev-next small">
        <tr>
            {if $prev && !$next}
                <td class="arrow">&larr;</td><td><a href="{$prev.frontend_url}">{$prev.name|escape}</a></td>
            {elseif $next && !$prev}
                <td></td><td class="half"></td>
                <td class="half next"><a href="{$next.frontend_url}">{$next.name|escape}</a></td><td class="arrow">&rarr;</td>
            {else}
                <td class="arrow">&larr;</td><td class="half"><a href="{$prev.frontend_url}">{$prev.name|escape}</a></td>
                <td class="half next"><a href="{$next.frontend_url}">{$next.name|escape}</a></td><td class="arrow">&rarr;</td>
            {/if}
        </tr>
    </table>
{/if}
<style>
table.prev-next { width: 100%; border: none; }
table.prev-next td { vertical-align: top; border: none; }
table.prev-next td.half { width: 49%; }
table.prev-next td.next { text-align: right; }
table.prev-next td.arrow { width: 1em; }
</style>