Re: [SMARTY] section sum of numbers...

Jochem Maas <[email protected]>
Newsgroups gmane.comp.php.smarty.general
Message-ID <[email protected]>
just saw your reply, just wanted to complement you on the rather
elegant example/snippet... it definitely has me thinking about new ways
of doing things / looking at problems (especially regarding Smarty)

  :-)

now to look up your 'more generalized reporting tool'

rgds,
Jochem

boots wrote:
> If you don't feel like building a bunch of objects to get simple sums
> from normal recordsets you may enjoy this cheeky solution:
> 
> Define the following function (you can delcare it as a modifier if you
> wish, but it is not necessary to do so):
> 
> function sum_records($v=0, $k=0, $key=null)
> {
>     static $a=0;
>     if ($key == null) {
>         $b = $a;
>         $a = 0;
>         return $b;
>     } else {
>         $a += $v[$key];
>     }
> }
> 
> and assume that $data is an array of records. Then to sum for a given
> field (say 'year' and 'sales') in the template:
> 
> {$data|@array_walk:'sum_records':'year'|sum_records}
> {$data|@array_walk:'sum_records':'sales'|sum_records}
> 
> You can hide some of the details by creating a proper modifier, perhaps
> ending with: {$data|@sum_on:'year'} but I will leave that as a trivial
> excercise :)
> 
> I think I would like the Iterator approach more if ArrayAccess was also
> implemented; I'm not big on using property notation for fields in
> templates but I guess that's just me :)
> 
> FWIW, awhile ago I posted a more generalized reporting tool at the
> forum though it is presently being upgraded so as to be more OOP like
> in the backend while hopefully remaining template like in the
> front-end. In the meantime, it works well enough to solve simpler cases
> like this and also provide in-template sorting, etc.
> 
> xo boots


....

-- 
Smarty General Mailing List (http://smarty.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.