From 8a1b006a0cbec2225a86cf5dfab9a955ce6919f3 Mon Sep 17 00:00:00 2001 From: Graham Cole <chckens@sucs.org> Date: Wed, 30 Jan 2008 23:07:44 +0000 Subject: [PATCH] this is much nicer to read :) --- components/members.php | 33 +++++-------------- templates/banana-awardlist.tpl | 10 ++++++ templates/members.tpl | 60 ++++++++++++++-------------------- 3 files changed, 43 insertions(+), 60 deletions(-) create mode 100644 templates/banana-awardlist.tpl diff --git a/components/members.php b/components/members.php index dd0246f..3cc6426 100644 --- a/components/members.php +++ b/components/members.php @@ -72,31 +72,16 @@ if ($session->loggedin) { $bananasql .= "WHERE username ~* ? ORDER BY WHN DESC"; $awards = $DB->GetAll($bananasql, array("^".$usernames[0]['uid']."$")); - // add academic year to each award, perform slightly nasty hack to add sum for academic year to last of the year - $yearSum = 0; - unset($acYear); - unset($yearStart); - foreach ($awards as $i => $award) { - $awards[$i]['acYear'] = academicYear(strtotime($award['whn'])); - if ($acYear != $awards[$i]['acYear']) { - if(isset($yearStart)) { - $awards[$yearStart]['yearSum'] = $yearSum; - $yearSum = 0; - } - $yearSum += $award['score']; - $acYear = $awards[$i]['acYear']; - $yearStart = $i; - } else { - $yearSum += $award['score']; - } - } - if(isset($yearStart)) $awards[$yearStart]['yearSum'] = $yearSum; - + // arrange by academic year, calculate sums as we go + foreach ($awards as $award) { + $acyear = academicYear(strtotime($award['whn'])); + $awards_by_year[$acyear]['awards'][] = $award; + $awards_by_year[$acyear]['sum'] += $award['score']; + $bananasum += $award['score']; + } - $usernames[0]['awards'] = $awards; - $bananasumsql = "select sum(score) as sum from awards where username ~* ?"; - $bananasum = $DB->GetAll($bananasumsql, array("^".$usernames[0]['uid']."$")); - $usernames[0]['bananascore'] = $bananasum[0]['sum']; + $usernames[0]['awardsbyyear'] = &$awards_by_year; + $usernames[0]['bananascore'] = $bananasum; } } $smarty->assign('results', $usernames); diff --git a/templates/banana-awardlist.tpl b/templates/banana-awardlist.tpl new file mode 100644 index 0000000..e019793 --- /dev/null +++ b/templates/banana-awardlist.tpl @@ -0,0 +1,10 @@ +<ul class="bananas"> +{foreach name=awards from=$awards item=award} +<li class="{award_image_class number=$award.score}"> + <q>{$award.why}</q> <br /> + <small> + <strong>{if $award.score >0}+{/if}{$award.score}</strong> awarded by {$award.who} on {$award.whn | date_format:"%d %b %Y"} + </small> +</li> +{/foreach} +</ul> diff --git a/templates/members.tpl b/templates/members.tpl index fbc331a..df2e8ff 100644 --- a/templates/members.tpl +++ b/templates/members.tpl @@ -8,41 +8,42 @@ {/foreach} </ul> {elseif count($results) == 1 } +{assign var=member value=$results[0]} <div class="box"> -<div class="boxhead"><h2>Membership Details for {$results[0].uid}</h2></div> +<div class="boxhead"><h2>Membership Details for {$member.uid}</h2></div> <div class="boxcontent"> -{if isset($results[0].picture) } - <img class="emblem" src="{$baseurl}{$results[0].picture}" alt="Picture of {$results[0].uid}" /> +{if isset($member.picture) } + <img class="emblem" src="{$baseurl}{$member.picture}" alt="Picture of {$member.uid}" /> {/if} <dl class="member"> <dt>Username</dt> - <dd>{$results[0].uid|escape:'htmlall'}</dd> + <dd>{$member.uid|escape:'htmlall'}</dd> <dt>Real Name</dt> - <dd>{$results[0].cn|escape:'htmlall'}</dd> + <dd>{$member.cn|escape:'htmlall'}</dd> <dt>Account Type</dt> - <dd>{$results[0].acctype|escape:'htmlall'}</dd> -{if $results[0].website } + <dd>{$member.acctype|escape:'htmlall'}</dd> +{if $member.website } <dt>Website</dt> - <dd><a href="http://sucs.org/~{$results[0].uid|escape:'url'}/">http://sucs.org/~{$results[0].uid|escape:'url'}/</a></dd> + <dd><a href="http://sucs.org/~{$member.uid|escape:'url'}/">http://sucs.org/~{$member.uid|escape:'url'}/</a></dd> {/if} -{if isset($results[0].blog) } +{if isset($member.blog) } <dt>Blog</dt> - <dd><a href="/Blogs/{$results[0].uid|escape:'url'}">{$results[0].blog}</a></dd> + <dd><a href="/Blogs/{$member.uid|escape:'url'}">{$member.blog}</a></dd> {/if} -{if isset($results[0].project) } +{if isset($member.project) } <dt>Project</dt> - <dd id="project"><pre style="clear: left;">{$results[0].project|escape:'htmlall'}</pre></dd> + <dd id="project"><pre style="clear: left;">{$member.project|escape:'htmlall'}</pre></dd> {/if} -{if isset($results[0].plan) } +{if isset($member.plan) } <dt>Plan</dt> - <dd id="plan"><pre style="clear: left;">{$results[0].plan|escape:'htmlall'}</pre></dd> + <dd id="plan"><pre style="clear: left;">{$member.plan|escape:'htmlall'}</pre></dd> {/if} <dt>Banana Score</dt> -{if $results[0].awards|@count >= 1} - <dd>{bananaprint score=$results[0].bananascore}{$results[0].bananascore} banana{if $results[0].bananascore<>1}s{/if}</dd> +{if $member.awardsbyyear|@count >= 1} + <dd>{bananaprint score=$member.bananascore}{$member.bananascore} banana{if $member.bananascore<>1}s{/if}</dd> {else} - <dd>{$results[0].uid} doesn't have any banana awards</dd> + <dd>{$member.uid} doesn't have any banana awards</dd> {/if} </dl> @@ -51,29 +52,16 @@ </div> <div class="hollowfoot"><div><div></div></div></div> </div> -{if $results[0].awards|@count >= 1} +{if $member.awardsbyyear|@count >= 1} <div class="box"> -<div class="boxhead"><h2>Banana Awards for {$results[0].uid}</h2></div> +<div class="boxhead"><h2>Banana Awards for {$member.uid}</h2></div> <div class="boxcontent"> <dl class="bananas"> - {foreach name=awards from=$results[0].awards key=key item=award} - {if $acYear != $award.acYear} - {assign var='acYear' value=$award.acYear} - {if !$smarty.foreach.awards.first}</ul></dd>{/if} - <dt>{$award.acYear}/{math equation="x + 1" x=$award.acYear}: <small>{$award.yearSum} banana{if $award.yearSum|abs != 1}s{/if}</small> -</dt> - <dd><ul class="bananas"> - {/if} - <li class="{award_image_class number=$award.score}"> - <q>{$award.why}</q> <br/> - <small> - <strong>{if $award.score > 0}+{/if}{$award.score}</strong> awarded by {$award.who} on {$award.whn|date_format:"%d %b %Y"} - </small> - - </li> - {if $smarty.foreach.awards.last}</ul>{/if} + {foreach name=awardsbyyear from=$member.awardsbyyear key=yearname item=year} + <dt>{$yearname}/{math equation="x + 1" x=$yearname}: <small>{$year.sum} banana{if $year.sum|abs != 1}s{/if}</small></dt> + <dd>{include file=banana-awardlist.tpl awards=$year.awards}</dd> {/foreach} - </dd></dl> + </dl> </div> <div class="hollowfoot"><div><div></div></div></div> </div> -- GitLab