LINUX.ORG.RU

[Smarty]


0

0

Добрый вечер:)

Пытаюсь сделать небольшое разделение на категории в зависимости от нажатой кнопки, возникла такая проблема. 
Как это можно сделать на пхп в две строки я знаю, хочется оставить эту часть именно в шаблоне.

В базе на каждую отображаемую единицу содержится текстовая запись,
которая начинается с 1 слова для каждой категории, 
но дальше запись различается. 
Сейчас сравнение идёт только по строке, а хотелось бы только по первому слову - оно никогда не будет меняться.


{section name=i loop=$object.info}
    {if $object.info[i].value eq 'one zxnvbquy4'}
        <span>one</span>
    {elseif $object.info[i].value eq 'two vnbxm84'}
        <span>two</span>
    {elseif $object.info[i].value eq 'three ds4'}
        <span>three</span>
    {/if}
{/section}

То есть мне хотелось бы сравнивать исключительно первое слово, исключительно в шаблоне - если второе слово будет другим 
(а с некой вероятностью когда-нибудь оно станет другим, весь мой чудо-код окажется бесполезным). 
Некое подобие регэкспа что-ли, в доках смарти не нашел. 
Да, я понимаю что логику в представление засовывать плохо, но все-таки:)
anonymous

{section name=i loop=$object.info}
{capture name=firstWord}{$object.info[i].value|regex_replace:"/^(\w+)\s+.*/":"\$1"}{/cap
ture}
    {if $smarty.capture.firstWord eq 'one'}
        <span>one</span>
    {elseif $smarty.capture.firstWord eq 'two'}
        <span>two</span>
    {elseif $smarty.capture.firstWord eq 'three'}
        <span>three</span>
    {/if}
{/section}

Идея примерно такая. Оно?

Slavaz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.