Задача
Показывать флаг страны рядом с ее названием в списке характеристик товара. Для характеристик типа «Страна происхождения».
Как должно выглядеть
Вариант решения
Для показа флагов используйте коллекцию иконок из директории фреймворка wa-content/img/country/. Файлы иконок с флагами стран названы по их 3-буквенным. Например, rus — Россия, usa — США, deu — Германия и т. д. Список трехбуквенных кодов стран в Википедии.
Посмотрите код характеристики со списком стран в разделе «Настройки → Типы и характеристики товаров».
В теме дизайна магазина найдите фрагмент кода, который формирует список характеристик товара. Вот пример кода для страницы товара (файл product.html) из темы дизайна «Дефолт 3.0».
{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}
Перед этим фрагментом добавьте список стран и их 3-буквенных кодов, как показано в примере.
{$feature_countries = [ 'Россия' => 'rus', 'Соединенные Штаты Америки' => 'usa', 'Германия' => 'deu' ]}
Найдите строку, которая показывает на странице одиночное значение, а не массив (список).
... {else} {$f_value} {* вот эта строка *} {/if}
Добавьте перед этой строкой условие, которое покажет флаг страны перед ее названием.
{* код характеристики с названиями и кодами стран *} {if $f_code == 'country'} {$country_key = trim($f_value)} {if !empty($feature_countries[$country_key])} <img src="{$wa_url}wa-content/img/country/{$feature_countries[$country_key]}.gif" title="{$m[1]}" style="display: inline-block;"> {/if} {/if} {$f_value}
Вот так в этом примере выглядит полностью фрагмент кода, показывающий список характеристик с добавленным условием для флагов стран.
{* список стран и их кодов *} {$feature_countries = [ 'Россия' => 'rus', 'Соединенные Штаты Америки' => 'usa', 'Германия' => 'deu' ]} {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} {* начало добавленного фрагмента *} {if $f_code == 'country'} {$country_key = trim($f_value)} {if !empty($feature_countries[$country_key])} <img src="{$wa_url}wa-content/img/country/{$feature_countries[$country_key]}.gif" title="{$m[1]}" style="display: inline-block;"> {/if} {/if} {* конец добавленного фрагмента *} {$f_value} {/if} </td> </tr> {/foreach}