summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-07-08 09:24:59 +0000
committeryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-07-08 09:24:59 +0000
commitdeb02936b7bd39259d019bbc46893af583ff856e (patch)
treef44d8d5c561222a21b80c3b2a548049d2adf96cd
parent079e594bb5a43f948fed01b5140e01f3fd127ff9 (diff)
Added recent posts, upcoming releases and just released lists to the homepage, and removed the vote count
git-svn-id: svn://vndb.org/vndb@56 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b
-rw-r--r--data/tpl/defs.pl3
-rw-r--r--data/tpl/home21
-rw-r--r--data/tpl/main1
-rw-r--r--lib/VNDB/HomePages.pm4
-rw-r--r--lib/VNDB/Util/DB.pm6
-rw-r--r--lib/VNDB/Util/Tools.pm2
6 files changed, 33 insertions, 4 deletions
diff --git a/data/tpl/defs.pl b/data/tpl/defs.pl
index 46269347..47364193 100644
--- a/data/tpl/defs.pl
+++ b/data/tpl/defs.pl
@@ -28,7 +28,8 @@ sub datestr {
return 'unknown' if $d[0] == 0;
my $r = sprintf $d[1] == 99 ? '%04d' : $d[2] == 99 ? '%04d-%02d' : '%04d-%02d-%02d', @d;
$r = 'TBA' if $d[0] == 9999;
- return ($b?'<b class="future">':'').$r.($b?'</b>':'');
+ $r =~ s/^[0-9]{4}-// if $_[1];
+ return ($b&&!$_[1]?'<b class="future">':'').$r.($b?'</b>':'');
}
sub mediastr {
return join(', ', map {
diff --git a/data/tpl/home b/data/tpl/home
index b07e6e11..eb73a1d9 100644
--- a/data/tpl/home
+++ b/data/tpl/home
@@ -29,6 +29,20 @@
</ul>
<ul class="home">
+ <li><b>Recent posts</b></li>
+ [[ for (@{$d{recentposts}}) { ]]-
+ <li><a href="/t[[= $_->{id}.'.'.$_->{count} ]]" title="[[: $_->{title} ]]">[[: shorten $_->{title}, 25 ]]</a> <i>[[: $_->{lusername} ]]</i></li>
+ [[ } ]]-
+</ul>
+
+<ul class="home">
+ <li><b>Upcoming releases</b></li>
+ [[ for (@{$d{upcomingrel}}) { ]]-
+ <li>[[= datestr $_->{released}, 1 ]]- <a href="/r[[= $_->{id} ]]" title="[[: $_->{title} ]]">[[: shorten $_->{title}, 25 ]]</a></i></li>
+ [[ } ]]-
+</ul>
+
+<ul class="home break">
<li><b>Recently added visual novels</b></li>
[[ for (@{$d{recentvns}}) { ]]-
<li><a href="/v[[= $_->{iid} ]]" title="[[: $_->{ititle} ]]">[[: shorten $_->{ititle}, 30 ]]</a></li>
@@ -41,3 +55,10 @@
<li><a href="/p[[= $_->{iid} ]]" title="[[: $_->{ititle} ]]">[[: shorten $_->{ititle}, 30 ]]</a></li>
[[ } ]]-
</ul>
+
+<ul class="home">
+ <li><b>Just released</b></li>
+ [[ for (@{$d{justrel}}) { ]]-
+ <li>[[= datestr $_->{released}, 1 ]]- <a href="/r[[= $_->{id} ]]" title="[[: $_->{title} ]]">[[: shorten $_->{title}, 25 ]]</a></i></li>
+ [[ } ]]-
+</ul>
diff --git a/data/tpl/main b/data/tpl/main
index 7d5fc6e5..799a1ee8 100644
--- a/data/tpl/main
+++ b/data/tpl/main
@@ -125,7 +125,6 @@
<li><b>[[= $p{Statvn}||0 ]]</b> visual novels</li>
<li><b>[[= $p{Statproducers}||0 ]]</b> producers</li>
<li><b>[[= $p{Statreleases}||0 ]]</b> releases</li>
- <li><b>[[= $p{Statvotes}||0 ]]</b> votes</li>
<li><b>[[= $p{Statusers}||0 ]]</b> users</li>
</ul>
[[ if(0) { ]] <h2>Most popular</h2>
diff --git a/lib/VNDB/HomePages.pm b/lib/VNDB/HomePages.pm
index 1db0fbe4..4907a7db 100644
--- a/lib/VNDB/HomePages.pm
+++ b/lib/VNDB/HomePages.pm
@@ -20,6 +20,10 @@ sub HomePage {
recentedits => scalar $self->DBGetHist( results => 10, what => 'iid ititle'),
recentvns => scalar $self->DBGetHist( results => 10, what => 'iid ititle', edits => 0, type => 'v'),
recentps => scalar $self->DBGetHist( results => 10, what => 'iid ititle', edits => 0, type => 'p'),
+ recentposts => scalar $self->DBGetThreads(results => 10, what => 'lastpost', order => 'tp2.date DESC'),
+ # cache this shit when performance is going to be problematic
+ upcomingrel => scalar $self->DBGetRelease(results => 10, unreleased => 1),
+ justrel => scalar $self->DBGetRelease(results => 10, order => 'rr.released DESC', unreleased => 0),
});
}
diff --git a/lib/VNDB/Util/DB.pm b/lib/VNDB/Util/DB.pm
index 679c16b6..4c5b3085 100644
--- a/lib/VNDB/Util/DB.pm
+++ b/lib/VNDB/Util/DB.pm
@@ -813,6 +813,7 @@ sub DBGetRelease { # %options->{ id vid results page rev }
$o{results} ||= 50;
$o{page} ||= 1;
$o{what} ||= '';
+ $o{order} ||= 'rr.released ASC';
my %where = (
!$o{id} && !$o{rev} ? (
'r.hidden = 0' => 1 ) : (),
@@ -822,6 +823,8 @@ sub DBGetRelease { # %options->{ id vid results page rev }
'c.rev = %d' => $o{rev} ) : (),
$o{vid} ? (
'rv.vid = %d' => $o{vid} ) : (),
+ defined $o{unreleased} ? (
+ q|rr.released %s TO_CHAR('today'::timestamp, 'YYYYMMDD')::integer| => $o{unreleased} ? '>' : '<=' ) : (),
);
my $where = scalar keys %where ? 'WHERE !W' : '';
@@ -839,9 +842,10 @@ sub DBGetRelease { # %options->{ id vid results page rev }
FROM releases_rev rr
@join
$where
- ORDER BY rr.released ASC
+ ORDER BY %s
LIMIT %d OFFSET %d|,
$where ? \%where : (),
+ $o{order},
$o{results}+(wantarray?1:0), $o{results}*($o{page}-1)
);
$_->{released} = sprintf '%08d', $_->{released} for @$r;
diff --git a/lib/VNDB/Util/Tools.pm b/lib/VNDB/Util/Tools.pm
index 9b6180e1..caa66ef4 100644
--- a/lib/VNDB/Util/Tools.pm
+++ b/lib/VNDB/Util/Tools.pm
@@ -137,7 +137,7 @@ sub AddDefaultStuff {
$self->ResAddTpl(st => $self->{static_url});
$self->ResAddTpl('Stat'.$_, $self->DBTableCount($_))
- for (qw|users producers vn releases votes|);
+ for (qw|users producers vn releases|);
# development shit
if($self->{debug}) {