Инструменты пользователя

Инструменты сайта


limb3:ru:packages:wact:filters:data_filters:stats_filter

Фильтр 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]}

Параметры

  • context_name - имя контекста.
  • mode (опционально) - режим.

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

  • acc - используется по-умолчанию. Добавляем значение базы в текущему состоянию и выводит только что добавленное значение в шаблон.
  • accq - то же самое, что и первый вариант, только не выводит значение полученной суммы. Пользоваляет просто накапливать статическую информацию, не выводя ее.
  • sum - выводит сумму элементов
  • avg - выводить среднее арифметическое элементов
  • count - выводит количество добавленных элементов
  • stdev - выводит среднее отклонение по методу n-1.
  • stdevp - выводит среднее отклонение.
  • reset - сброс данных фильтра.

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

Шаблон 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

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   ___  ______  ____    ____   ___ 
  / _ \/_  __/ / __ \  / __/  / _ )
 / ___/ / /   / /_/ / / _/   / _  |
/_/    /_/    \___\_\/_/    /____/
 
limb3/ru/packages/wact/filters/data_filters/stats_filter.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)