X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FListing.pm;h=03285a142f969265cf2ae340ed8b7fe68fc1b536;hp=f97a643414677f9ad177a3b5ab0f44ce1586684e;hb=690d93241d826e733ac20868208a0bee2134ee11;hpb=f9ff3e7edda055056a4de903d4b959f8fa1c2542 diff --git a/perl/Sesse/pr0n/Listing.pm b/perl/Sesse/pr0n/Listing.pm index f97a643..03285a1 100644 --- a/perl/Sesse/pr0n/Listing.pm +++ b/perl/Sesse/pr0n/Listing.pm @@ -17,6 +17,12 @@ sub handler { } } + # Fix common error: pr0n.sesse.net/+foo -> pr0n.sesse.net/+foo/ + if ($r->uri !~ /\/$/) { + $r->headers_out->{'location'} = $r->uri . "/"; + return Apache2::Const::REDIRECT; + } + # find the last modification my $ref = $dbh->selectrow_hashref('SELECT EXTRACT(EPOCH FROM last_update) AS last_update FROM events WHERE vhost=? ORDER BY last_update DESC LIMIT 1', undef, $r->get_server_name) @@ -37,6 +43,7 @@ sub handler { or dberror($r, "Couldn't get events"); Sesse::pr0n::Common::header($r, Sesse::pr0n::Templates::fetch_template($r, 'tag-listing')); + Sesse::pr0n::Templates::print_template($r, 'mainmenu-tags'); my $cloud = HTML::TagCloud->new; @@ -56,12 +63,20 @@ sub handler { # main listing # my $q = $dbh->prepare('SELECT t1.id,t1.date,t1.name FROM events t1 LEFT JOIN images t2 ON t1.id=t2.event WHERE t1.vhost=? GROUP BY t1.id,t1.date,t1.name ORDER BY COALESCE(MAX(t2.date),\'1970-01-01 00:00:00\'),t1.id') or # dberror($r, "Couldn't list events"); - my $q = $dbh->prepare('SELECT event,date,name FROM events e JOIN last_picture_cache c USING (vhost,event) WHERE vhost=? ORDER BY last_picture DESC') + my $q = $dbh->prepare('SELECT event,date,name FROM events e JOIN last_picture_cache c USING (vhost,event) WHERE vhost=? ORDER BY last_picture DESC NULLS LAST') or dberror($r, "Couldn't list events"); $q->execute($r->get_server_name) or dberror($r, "Couldn't get events"); Sesse::pr0n::Common::header($r, Sesse::pr0n::Templates::fetch_template($r, 'event-listing')); + + # See if there are any tags related to this vhost + my $ref = $dbh->selectrow_hashref('SELECT * FROM tags t JOIN images i ON t.image=i.id WHERE vhost=? LIMIT 1', + undef, $r->get_server_name); + if (defined($ref)) { + Sesse::pr0n::Templates::print_template($r, 'mainmenu-events'); + } + my $allcaption = Sesse::pr0n::Templates::fetch_template($r, 'all-event-title'); $r->print("