Блог

Поиск совпадения в smarty

Задача найти совпадения в названии с переменной в шаблоне smarty. Совпадение может быть найдено в любом месте фразы. Если результат положительный выводим значение переменной. То есть названия Серый сопоставимо со Светло-серая сетка и будут иметь значение сер.

Для решения задачи используем PHP функцию preg_match:

{*
    // $string - массив значений для сопоставления
    // $name - ваше название, например Светло-серая сетка
    // $c - значение переменной при совпадении
*}

{$string = ['сер', 'кра', 'бор', 'чер', 'беж', 'син', 'сал', 'жел', 'кор', 'бел', 'ора','зол']}

{$c = 0}
{foreach $string as $color}
    {if preg_match("/`$color`/i", $name|lower)}
        {$c = $color}
    {/if}
{/foreach}

<div{if !empty($c)} data-color="{$c}"{/if}>
    ......
</div>
Просмотры: 79