====== Фильтр stats ======
===== Описание =====
Фильтр stats позволяет накапливать и выводить некоторую статистическую информацию, например, находить сумму элементов, вычислять средние арифметические, подсчитывать количество и т.д.
Пример:
{$val|stats:"ttl"}
Total:{$bogus|stats:"ttl","sum"}
Здесь stats фильтр будет накапливать значения переменной val и затем выведет сумму элементов.
В рамках фильтра stats есть понятие контекста - это как бы название экземпляра фильтра. Все упоминания фильтра с указанных контекстом будут применены к одному из экземлятов. В нашем примере мы использовать контекст ttl, который указывается первым параметров фильтра.
Вторым параметром указывается режим работы фильтра. Если режим не указан, тогда значение базы для фильтра будет просто прибавлено к уже накомленному результату.
Фильтр stats реализован как набор одиночек, поэтому многочисленные вызовы этого фильтра для каждого контекста в рамках одного шаблона используют один и тот же экземпляр объекта.
===== Синтаксис =====
{$var|stats:context_name [,mode]}
===== Параметры =====
* **context_name** - имя контекста.
* **mode** (опционально) - режим.
Список доступных режимов:
* **acc** - используется по-умолчанию. Добавляем значение базы в текущему состоянию и выводит только что добавленное значение в шаблон.
* **accq** - то же самое, что и первый вариант, только не выводит значение полученной суммы. Пользоваляет просто накапливать статическую информацию, не выводя ее.
* **sum** - выводит сумму элементов
* **avg** - выводить среднее арифметическое элементов
* **count** - выводит количество добавленных элементов
* **stdev** - выводит среднее отклонение по методу n-1.
* **stdevp** - выводит среднее отклонение.
* **reset** - сброс данных фильтра.
===== Пример использования =====
Шаблон stats.html (обратите внимание на режи accq)
{val} - {$val|stats:"aq","accq"}
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