|
Posted by Jochem Maas on 07/25/05 15:35
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
.....
Navigation:
[Reply to this message]
|