]> ruin.nu Git - ndwebbie.git/commitdiff
Member specific page
authorMichael Andreen <harv@ruin.nu>
Mon, 10 Sep 2007 20:18:22 +0000 (22:18 +0200)
committerMichael Andreen <harv@ruin.nu>
Mon, 10 Sep 2007 20:18:22 +0000 (22:18 +0200)
NDWeb/Pages/MemberIntel.pm
templates/memberIntel.tmpl

index 69ced51e09e7abcfb125cffc4ac9a2959ec8dad1..fa1552d9ffb1b598cb057936e40041867d8866f4 100644 (file)
@@ -45,30 +45,39 @@ sub render_body {
                }
        }
 
-       my $query = $DBH->prepare(q{SELECT u.uid,u.username,u.attack_points, u.defense_points, n.tick
-               ,count(CASE WHEN i.mission = 'Attack' THEN 1 ELSE NULL END) AS attacks
-               ,count(CASE WHEN (i.mission = 'Defend' OR i.mission = 'AllyDef') THEN 1 ELSE NULL END) AS defenses
-               FROM users u
-               JOIN groupmembers gm USING (uid)
-               LEFT OUTER JOIN (SELECT DISTINCT ON (planet) planet,tick from scans where type = 'News' ORDER BY planet,tick DESC) n USING (planet)
-               LEFT OUTER JOIN (SELECT * FROM intel WHERE amount = -1) i ON i.sender = u.planet
-               LEFT OUTER JOIN current_planet_stats t ON i.target = t.id
-               WHERE gm.gid = 2
-               GROUP BY u.uid,u.username,u.attack_points, u.defense_points,n.tick
-               ORDER BY attacks DESC,defenses DESC});
-       $query->execute() or $error .= $DBH->errstr;
-       my @members;
-       my $i = 0;
-       while (my $intel = $query->fetchrow_hashref){
-               $i++;
-               $intel->{ODD} = $i % 2;
-               $intel->{OLD} = 'OLD' if (!defined $intel->{tick} || $self->{TICK} > $intel->{tick} + 60);
-               delete $intel->{tick};
-               push @members,$intel;
+       my $user;
+       if (defined param('uid') && param('uid') =~ /^(\d+)$/){
+               my $query = $DBH->prepare(q{SELECT username,uid FROM users WHERE uid = ?
+                       });
+               $user = $DBH->selectrow_hashref($query,undef,$1);
        }
 
-       $BODY->param(Members => \@members);
-
+       if ($user){
+               $BODY->param(UID => $user->{uid});
+       }else{
+               my $query = $DBH->prepare(q{SELECT u.uid,u.username,u.attack_points, u.defense_points, n.tick
+                       ,count(CASE WHEN i.mission = 'Attack' THEN 1 ELSE NULL END) AS attacks
+                       ,count(CASE WHEN (i.mission = 'Defend' OR i.mission = 'AllyDef') THEN 1 ELSE NULL END) AS defenses
+                       FROM users u
+                       JOIN groupmembers gm USING (uid)
+                       LEFT OUTER JOIN (SELECT DISTINCT ON (planet) planet,tick from scans where type = 'News' ORDER BY planet,tick DESC) n USING (planet)
+                       LEFT OUTER JOIN (SELECT * FROM intel WHERE amount = -1) i ON i.sender = u.planet
+                       LEFT OUTER JOIN current_planet_stats t ON i.target = t.id
+                       WHERE gm.gid = 2
+                       GROUP BY u.uid,u.username,u.attack_points, u.defense_points,n.tick
+                       ORDER BY attacks DESC,defenses DESC, attack_points DESC, defense_points DESC});
+               $query->execute() or $error .= $DBH->errstr;
+               my @members;
+               my $i = 0;
+               while (my $intel = $query->fetchrow_hashref){
+                       $i++;
+                       $intel->{ODD} = $i % 2;
+                       $intel->{OLD} = 'OLD' if (!defined $intel->{tick} || $self->{TICK} > $intel->{tick} + 60);
+                       delete $intel->{tick};
+                       push @members,$intel;
+               }
+               $BODY->param(Members => \@members);
+       }
        $BODY->param(Error => $error);
        return $BODY;
 }
index 6260dc9b09edb67c555c26afde6777c2ca251a73..c4637d264dd8dcf268a4613f74d2f27441935a52 100644 (file)
@@ -1,5 +1,7 @@
 <TMPL_VAR NAME=Error>
-<p><a href="/<TMPL_VAR NAME=PAGE>?show=all">Show all ticks</a></p>
+<!--<p><a href="/<TMPL_VAR NAME=PAGE>?show=all">Show all ticks</a></p>-->
+<TMPL_IF UID>
+<TMPL_ELSE>
 <table>
        <tr>
                <th>Member</th><th>Attacks</th><th>Defenses</th><th>Attack Points</th><th>Defense Points</th>
@@ -15,3 +17,4 @@
        </tr>
        </TMPL_LOOP>
 </table>
+</TMPL_IF>