Как получить в шаблоне код значения характеристики?

При выводе определенной характеристики я хочу сделать гиперссылку, на все товары с этой характеристикой.

Вот код из шаблона

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

<tr><td class="feature_name_td"><b>{$features[$f_code].name|escape}</b></td>

<td>

{if $f_code == 'liniya'}<a href="/search/?liniya[]={ГДЕ ВЗЯТЬ ЭТОТ КОД}">{/if}

{if is_array($f_value)}{implode(', ', $f_value)}{else}{$f_value}{/if}

{if $f_code == 'liniya'}</a>{/if}

</td>

</tr>

{/foreach}

Может код вообще не нужен? Ведь можно указать hash="search/liniya=SUNRISE" для shopProductsCollection и будет работать и код никакой не нужен, но страница search на сайте работает иначе: /search/?liniya[]=4554 (где 4554 код значения характеристики)

2 ответа

  • 1
    Эрик Webasyst 23 июля 2016 08:46 #

    Подробную поддержку по редактированию исходного кода программных продуктов вы также можете получить от экспертов Webasyst.

  • 1
    Lady 23 июля 2016 13:56 #

    Ммм, в общем я сделал в обход логики движка, то есть контроллеров, экшенов, зато работает )

    В шаблоне search.html:

    {if $wa->get('hash')}{$products=$wa->shop->products($wa->get('hash'))}{$pages_count=1}{/if}

    Соответственно hash без кода характеристики товара, а значит его можно сформировать в шаблоне product.html:

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

    {if $f_code == 'liniya'}<a href="/search/?hash=search/liniya={$f_value}">{/if}

    {if is_array($f_value)}{implode(', ', $f_value)}{else}{$f_value}{/if}

    {if $f_code == 'liniya'}</a>{/if}

    {/foreach}

    Получается, что выборка товаров осуществлятся дважды: контроллером, и шаблом страницы search если передан hash...

    Правильное решение это скорее всего написать хелпер... Если все таки есть другое правильное решение подскажите плс.

Добавить ответ

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