Как получить в шаблоне код значения характеристики?
При выводе определенной характеристики я хочу сделать гиперссылку, на все товары с этой характеристикой.
Вот код из шаблона
{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 ответа
Подробную поддержку по редактированию исходного кода программных продуктов вы также можете получить от экспертов Webasyst.
Ммм, в общем я сделал в обход логики движка, то есть контроллеров, экшенов, зато работает )
В шаблоне 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...
Правильное решение это скорее всего написать хелпер... Если все таки есть другое правильное решение подскажите плс.