]> ruin.nu Git - ndwebbie.git/commitdiff
show announcements instead of motd on main page
authorMichael Andreen <harv@ruin.nu>
Wed, 9 Jan 2008 23:54:43 +0000 (00:54 +0100)
committerMichael Andreen <harv@ruin.nu>
Wed, 9 Jan 2008 23:54:43 +0000 (00:54 +0100)
NDWeb/Pages/Main.pm
templates/main.tmpl

index db3a11c7db65d0b56844c3492463ccc2b22d2bb9..e555b7bbe8f9f04559b53becb7a62dc1d5b711de 100644 (file)
@@ -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);
 
@@ -237,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;
 }
 
index 671bb8d71fec2058be1b990321e43da412477a66..9f0aab418dfb4f1cf49a940d9b5f4248fc0bdd55 100644 (file)
@@ -1,8 +1,16 @@
-<TMPL_VAR NAME=Error>
 <div class="leftinfo">
-<fieldset class="forum-post"> <legend>Message from HC<TMPL_IF isHC> <a href="motd?">EDIT</a></TMPL_IF></legend>
-       <TMPL_VAR ESCAPE=NONE NAME=MOTD>
-</fieldset>
+<table class="boards">
+               <TMPL_LOOP Announcements>
+       <tr class="<TMPL_IF __odd__>odd<TMPL_ELSE>even</TMPL_IF>">
+               <td align="center"><TMPL_VAR NAME=Unread></td>
+               <td align="center"><TMPL_VAR NAME=Posts></td>
+               <td<TMPL_IF Sticky> class="sticky"</TMPL_IF>><a href="/forum?t=<TMPL_VAR NAME=Id>#NewPosts">&nbsp;<TMPL_VAR NAME=Subject>&nbsp;</a></td>
+               <td align="left"><TMPL_VAR NAME=Posting_date></td>
+               <td align="center"><TMPL_VAR NAME=Username></td>
+               <td align="left"><TMPL_VAR NAME=Last_post></td>
+       </tr>
+               </TMPL_LOOP>
+</table>
 </div>
 <TMPL_IF PLANET>
 <img class="graph" src="/graph/planetvsnd/<TMPL_VAR NAME=PLANET>" alt="Your planet vs ND avg" height="300" width="500"/>