Smarty сортировать массив - PullRequest
       11

Smarty сортировать массив

0 голосов
/ 11 августа 2010

Я собираюсь отсортировать список названий продуктов, выводимых Smarty. Вот текущий код:

{foreach from=$products key=i item=product}
  <li>
      <a href="discuss.php?product={$product.uri}
      {if $filter_style}&amp;style={$filter_style}{/if}">{$product.name|capitalize}
      </a>
  </li>
{/foreach}

Вывод HTML:

<li>zzzzz</li>
<li>qqqqq</li>
<li>ccccc</li>
<li>aaaaa</li>  

Как я могу отсортировать A-Z?

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Ну, это возможно, но это не идеальное решение:

{php}
   sort($this->_tpl_vars['your_smarty_variable_name']);
{/php}
{foreach...

Если вы все равно хотите сделать это в smarty, было бы намного проще (и элегантнее) написать плагин smarty.

кстати.теги {php} {/ php} в smarty 3 устарели

1 голос
/ 11 августа 2010

Если вы хотите сделать это внутри шаблона, а не в PHP, который присваивает массив, вы можете написать собственный модификатор для массива, который сортирует его в цикле foreach.См. это сообщение в блоге для примера

...