X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=NDWeb%2FPages%2FMain.pm;h=95a85f3770554a31a48db9045b9df640d065ebbb;hb=fb2bbffe375681514dff83be2f9ed25e0d54bde3;hp=62d91f33af76d25125e09c6e224f76cc699503aa;hpb=4e8a42b55b7dfce191bd84a1ed31b3831db9f7fb;p=ndwebbie.git diff --git a/NDWeb/Pages/Main.pm b/NDWeb/Pages/Main.pm index 62d91f3..95a85f3 100644 --- a/NDWeb/Pages/Main.pm +++ b/NDWeb/Pages/Main.pm @@ -116,11 +116,7 @@ sub render_body { $query->execute($1,$2,$3,$ND::UID); } - my ($motd) = $DBH->selectrow_array("SELECT value FROM misc WHERE id='MOTD'"); - - $BODY->param(MOTD => parseMarkup($motd)); $BODY->param(isMember => $self->isMember()); - $BODY->param(isHC => $self->isHC()); my @groups = map {name => $_}, sort keys %{$self->{GROUPS}}; $BODY->param(Groups => \@groups); @@ -141,7 +137,7 @@ sub render_body { $BODY->param(Planet => $planet); my $calls = $DBH->prepare(qq{ - SELECT id,landing_tick,dc,curreta, + SELECT id,landing_tick,dc,curreta,covered, TRIM('/' FROM concat(DISTINCT race||' /')) AS race, TRIM('/' FROM concat(amount||' /')) AS amount, TRIM('/' FROM concat(DISTINCT eta||' /')) AS eta, TRIM('/' FROM concat(DISTINCT shiptype||' /')) AS shiptype, TRIM('/' FROM concat(coords||' /')) AS attackers @@ -162,7 +158,6 @@ sub render_body { })or warn $DBH->errstr; $calls->execute($ND::UID) or warn $DBH->errstr; - my $i = 0; my @calls; while (my $call = $calls->fetchrow_hashref){ $call->{attackers} =~ s{(\d+:\d+:\d+)}{$1}g; @@ -175,8 +170,6 @@ sub render_body { }else{ $call->{covered} = 'Hostile'; } - $i++; - $call->{ODD} = $i % 2; $call->{shiptype} = $call->{shiptype}; push @calls, $call; } @@ -227,14 +220,10 @@ ORDER BY x,y,z,mission,tick $query->execute($self->{UID},$self->{PLANET},$self->{TICK}) or warn $DBH->errstr; my @fleets; - $i = 0; while (my $fleet = $query->fetchrow_hashref){ - $fleet->{ODD} = $i++ % 2; my @ships; $ships->execute($fleet->{id}); - my $j = 0; while (my $ship = $ships->fetchrow_hashref){ - $ship->{ODD} = $j++ % 2; push @ships,$ship; } $fleet->{ships} = \@ships; @@ -244,6 +233,29 @@ ORDER BY x,y,z,mission,tick $BODY->param(SMS => $sms); $BODY->param(Hostname => $hostname); + + if ($self->isMember()){ + my $announcements = $DBH->prepare(q{SELECT ft.ftid AS id,u.username,ft.subject, + count(NULLIF(COALESCE(fp.time > ftv.time,TRUE),FALSE)) AS unread,count(fp.fpid) AS posts, + date_trunc('seconds',max(fp.time)::timestamp) as last_post, + min(fp.time)::date as posting_date, ft.sticky + FROM forum_threads ft JOIN forum_posts fp USING (ftid) + JOIN users u ON u.uid = ft.uid + LEFT OUTER JOIN (SELECT * FROM forum_thread_visits WHERE uid = $1) ftv ON ftv.ftid = ft.ftid + WHERE ft.fbid = 1 + GROUP BY ft.ftid, ft.subject,ft.sticky,u.username + HAVING count(NULLIF(COALESCE(ft.sticky OR fp.time > ftv.time,TRUE),FALSE)) >= $2 + ORDER BY sticky DESC,last_post DESC + }); + $announcements->execute($ND::UID,1) or warn $DBH->errstr; + my @threads; + while (my $thread = $announcements->fetchrow_hashref){ + push @threads,$thread; + } + $BODY->param(Announcements => \@threads); + } + + return $BODY; }