Adds a sum($selector, $field) method to the $pages class. Use for very fast summations across large data sets.

PagesSum Module For ProcessWire

This is a (very) slightly rewritten version of ESRCH's original PagesSum module for Processwire CMS/CMF. You can find the orignal article that introduced it here. The only change introduced is that I've used a closure for the hook function.

Credit


This is ESRCH's work. I've just put it on github to make it a little more accessible (it's buried deep in the Processwire forums.)

Method Of Operation


The module uses ProcessWire's ability to extend its classes by adding new hook functions to them. It adds one method sum to the Pages class. Thus, anywhere you get access to the $pages class, you can get a sum worked out from any subset of pages. The subset is defined using PWs selectors.

The summation is fast as it uses MySQL to sum the underlying data rather than having to iterate over every page in the selected set and pull out a value.

Installation


In the Processwire modules page, click the "New" tab and either enter PagesSum into the box or choose the option to install from a zip file. The zip file to use is the master branch zip from the gihub repository, here.

Example Use In Template File


If you wanted to sum a field called 'costs' across all pages using the 'job' template, you'd simply do this...

<p>Job costs £<?php echo $pages->sum('template=jobs', 'costs'); ?></p>

And if you wanted things a little more formatted, just run that through number_format first...

<p>Job costs £<?php echo number_format($pages->sum('template=jobs', 'costs'), 2); ?></p>

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Twitter updates

  • New main/master version of ProcessWire that has more than 220 commits, resolves more than 80 issues, adds numerous new features, performance improvements and optimizations, and consumes HALF the disk space of our previous release— More
    13 May 2022
  • Summary of weekly core updates for 22 April 2022 More
    22 April 2022
  • ProcessWire 3.0.198 core updates: in this post we take a closer look at 3 useful new features added in this version— More
    15 April 2022

Latest news

  • ProcessWire Weekly #418
    In the 418th issue of ProcessWire Weekly we'll cover recent highlights, share some tips and tricks, and check out the new master version of ProcessWire, 3.0.200. Read on!
    Weekly.pw / 14 May 2022
  • ProcessWire 3.0.200 new master/main version
    This new main/master version has more than 220 commits, resolves more than 80 issues, adds numerous new features, performance improvements and optimizations, and consumes HALF the disk space of our previous release. This post covers all the details.
    Blog / 13 May 2022
  • Subscribe to weekly ProcessWire news

“ProcessWire is like a breath of fresh air. So powerful yet simple to build with and customise, and web editors love it too.” —Margaret Chatwin, Web developer