Содержание

Фильтр stats

Описание

Фильтр stats позволяет накапливать и выводить некоторую статистическую информацию, например, находить сумму элементов, вычислять средние арифметические, подсчитывать количество и т.д.

Пример:

<list:list>
  <list:item>{$val|stats:"ttl"} </list:item>
</list:list>
Total:{$bogus|stats:"ttl","sum"}

Здесь stats фильтр будет накапливать значения переменной val и затем выведет сумму элементов.

В рамках фильтра stats есть понятие контекста - это как бы название экземпляра фильтра. Все упоминания фильтра с указанных контекстом будут применены к одному из экземлятов. В нашем примере мы использовать контекст ttl, который указывается первым параметров фильтра.

Вторым параметром указывается режим работы фильтра. Если режим не указан, тогда значение базы для фильтра будет просто прибавлено к уже накомленному результату.

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

Синтаксис

{$var|stats:context_name [,mode]}

Параметры

Список доступных режимов:

Пример использования

Шаблон stats.html (обратите внимание на режи accq)

<list:list id="List">
  <list:item>{val} - {$val|stats:"aq","accq"}</list:item>
</list:list><br/>
Total:{$bogus|stats:"aq","sum"}';

Поставим некоторые данные в шаблон:

$template = new WactTemplate('stats.html');
$template->setChildDataset('List', array(array('val'=>10),array('val'=>20),array('val'=>30)));
$template->display();

Получим:

10- 20- 30- 
Total: 60