}
# Internal? (Ugly?)
- if ($r->get_server_name =~ /internal/) {
+ if ($r->get_server_name =~ /internal/ || $r->get_server_name =~ /skoyen\.bilder\.knatten\.com/) {
my $user = Sesse::pr0n::Common::check_access($r);
if (!defined($user)) {
return Apache2::Const::OK;
infobox => 1,
rot => 0,
sel => 0,
+ fullscreen => 0,
);
# Reduce the front page load when in overload mode.
my %settings = %defsettings;
- for my $s qw(thumbxres thumbyres xres yres start num all infobox rot sel) {
+ for my $s qw(thumbxres thumbyres xres yres start num all infobox rot sel fullscreen) {
my $val = $apr->param($s);
if (defined($val) && $val =~ /^(\d+)$/) {
$settings{$s} = $val;
my $q;
my $where = ($all == 0) ? ' AND selected=\'t\'' : '';
- if (defined($start) && defined($num)) {
+ if (defined($start) && defined($num) && !$settings{'fullscreen'}) {
$q = $dbh->prepare("SELECT *, (date - INTERVAL '6 hours')::date AS day FROM images WHERE event=? $where ORDER BY (date - INTERVAL '6 hours')::date,takenby,date,filename LIMIT $num OFFSET " . ($start-1))
or dberror($r, "prepare()");
} else {
or dberror($r, "image enumeration");
# Print the page itself
- Sesse::pr0n::Common::header($r, "$name [$event]");
- Sesse::pr0n::Templates::print_template($r, "date", { date => $date });
-
- if (Sesse::pr0n::Overload::is_in_overload($r)) {
- Sesse::pr0n::Templates::print_template($r, "overloadmode");
- }
-
- print_thumbsize($r, $event, \%settings, \%defsettings);
- print_viewres($r, $event, \%settings, \%defsettings);
- print_pagelimit($r, $event, \%settings, \%defsettings);
- print_infobox($r, $event, \%settings, \%defsettings);
- print_nextprev($r, $event, \%settings, \%defsettings);
- print_selected($r, $event, \%settings, \%defsettings) if ($num_selected > 0);
-
- my $toclose = 0;
- my $lastupl = "";
-
- # Print out all thumbnails
- if ($rot == 1) {
- $r->print(" <form method=\"post\" action=\"/rotate\">\n");
-
+ if ($settings{'fullscreen'}) {
+ $r->content_type("text/html; charset=utf-8");
+ Sesse::pr0n::Templates::print_template($r, "fullscreen-header", { title => "$name [$event]" });
while (my $ref = $q->fetchrow_hashref()) {
- my $imgsz = "";
- my $takenby = $ref->{'takenby'};
- if (defined($ref->{'day'})) {
- $takenby .= ", " . $ref->{'day'};
- }
-
- if ($takenby ne $lastupl) {
- $lastupl = $takenby;
- Sesse::pr0n::Templates::print_template($r, "submittedby", { author => $lastupl });
- }
- if ($ref->{'width'} != -1 && $ref->{'height'} != -1) {
- my $width = $ref->{'width'};
- my $height = $ref->{'height'};
-
- ($width, $height) = Sesse::pr0n::Common::scale_aspect($width, $height, $thumbxres, $thumbyres);
- $imgsz = " width=\"$width\" height=\"$height\"";
- }
-
- my $filename = $ref->{'filename'};
- my $uri = $filename;
- if (defined($xres) && defined($yres) && $xres != -1) {
- $uri = "${xres}x$yres/$infobox$filename";
- } elsif (defined($xres) && $xres == -1) {
- $uri = "original/$infobox$filename";
- }
-
- $r->print(" <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
- $r->print(" 90 <input type=\"checkbox\" name=\"rot-" .
- $ref->{'id'} . "-90\" />\n");
- $r->print(" 180 <input type=\"checkbox\" name=\"rot-" .
- $ref->{'id'} . "-180\" />\n");
- $r->print(" 270 <input type=\"checkbox\" name=\"rot-" .
- $ref->{'id'} . "-270\" />\n");
- $r->print(" " .
- " Del <input type=\"checkbox\" name=\"del-" . $ref->{'id'} . "\" /></p>\n");
+ $r->print(" \"" . $ref->{'filename'} . "\",\n");
}
- $r->print(" <input type=\"submit\" value=\"Rotate\" />\n");
- $r->print(" </form>\n");
- } elsif ($sel == 1) {
- $r->print(" <form method=\"post\" action=\"/select\">\n");
- $r->print(" <input type=\"hidden\" name=\"event\" value=\"$event\" />\n");
-
- while (my $ref = $q->fetchrow_hashref()) {
- my $imgsz = "";
- my $takenby = $ref->{'takenby'};
- if (defined($ref->{'day'})) {
- $takenby .= ", " . $ref->{'day'};
- }
- if ($takenby ne $lastupl) {
- $lastupl = $takenby;
- Sesse::pr0n::Templates::print_template($r, "submittedby", { author => $lastupl });
- }
- if ($ref->{'width'} != -1 && $ref->{'height'} != -1) {
- my $width = $ref->{'width'};
- my $height = $ref->{'height'};
-
- ($width, $height) = Sesse::pr0n::Common::scale_aspect($width, $height, $thumbxres, $thumbyres);
- $imgsz = " width=\"$width\" height=\"$height\"";
- }
+ my %settings_no_fullscreen = %settings;
+ $settings_no_fullscreen{'fullscreen'} = 0;
- my $filename = $ref->{'filename'};
- my $uri = $filename;
- if (defined($xres) && defined($yres) && $xres != -1) {
- $uri = "${xres}x$yres/$infobox$filename";
- } elsif (defined($xres) && $xres == -1) {
- $uri = "original/$infobox$filename";
- }
+ my $returnurl = "http://" . $r->get_server_name . "/" . $event . "/" .
+ Sesse::pr0n::Common::get_query_string(\%settings_no_fullscreen, \%defsettings);
- my $selected = $ref->{'selected'} ? ' checked="checked"' : '';
+ # *whistle*
+ $returnurl =~ s/&/&/g;
- $r->print(" <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
- $r->print(" <input type=\"checkbox\" name=\"sel-" .
- $ref->{'id'} . "\"$selected /></p>\n");
- }
- $r->print(" <input type=\"submit\" value=\"Select\" />\n");
- $r->print(" </form>\n");
+ Sesse::pr0n::Templates::print_template($r, "fullscreen-footer", {
+ vhost => $r->get_server_name,
+ event => $event,
+ start => $settings{'start'} - 1,
+ returnurl => $returnurl,
+ sel => $settings{'sel'},
+ });
} else {
- while (my $ref = $q->fetchrow_hashref()) {
- my $imgsz = "";
- my $takenby = $ref->{'takenby'};
- if (defined($ref->{'day'})) {
- $takenby .= ", " . $ref->{'day'};
- }
+ Sesse::pr0n::Common::header($r, "$name [$event]");
+ Sesse::pr0n::Templates::print_template($r, "date", { date => $date });
+
+ if (Sesse::pr0n::Overload::is_in_overload($r)) {
+ Sesse::pr0n::Templates::print_template($r, "overloadmode");
+ }
+
+ print_thumbsize($r, $event, \%settings, \%defsettings);
+ print_viewres($r, $event, \%settings, \%defsettings);
+ print_pagelimit($r, $event, \%settings, \%defsettings);
+ print_infobox($r, $event, \%settings, \%defsettings);
+ print_nextprev($r, $event, \%settings, \%defsettings);
+ print_selected($r, $event, \%settings, \%defsettings) if ($num_selected > 0);
+ print_fullscreen($r, $event, \%settings, \%defsettings);
- if ($takenby ne $lastupl) {
- $r->print(" </p>\n\n") if ($lastupl ne "");
- $lastupl = $takenby;
- Sesse::pr0n::Templates::print_template($r, "submittedby", { author => $lastupl });
- $r->print(" <p>\n");
+ my $toclose = 0;
+ my $lastupl = "";
+
+ # Print out all thumbnails
+ if ($rot == 1) {
+ $r->print(" <form method=\"post\" action=\"/rotate\">\n");
+
+ while (my $ref = $q->fetchrow_hashref()) {
+ my $imgsz = "";
+ my $takenby = $ref->{'takenby'};
+ if (defined($ref->{'day'})) {
+ $takenby .= ", " . $ref->{'day'};
+ }
+
+ if ($takenby ne $lastupl) {
+ $lastupl = $takenby;
+ Sesse::pr0n::Templates::print_template($r, "submittedby", { author => $lastupl });
+ }
+ if ($ref->{'width'} != -1 && $ref->{'height'} != -1) {
+ my $width = $ref->{'width'};
+ my $height = $ref->{'height'};
+
+ ($width, $height) = Sesse::pr0n::Common::scale_aspect($width, $height, $thumbxres, $thumbyres);
+ $imgsz = " width=\"$width\" height=\"$height\"";
+ }
+
+ my $filename = $ref->{'filename'};
+ my $uri = $infobox . $filename;
+ if (defined($xres) && defined($yres) && $xres != -1) {
+ $uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
+ }
+
+ $r->print(" <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
+ $r->print(" 90 <input type=\"checkbox\" name=\"rot-" .
+ $ref->{'id'} . "-90\" />\n");
+ $r->print(" 180 <input type=\"checkbox\" name=\"rot-" .
+ $ref->{'id'} . "-180\" />\n");
+ $r->print(" 270 <input type=\"checkbox\" name=\"rot-" .
+ $ref->{'id'} . "-270\" />\n");
+ $r->print(" " .
+ " Del <input type=\"checkbox\" name=\"del-" . $ref->{'id'} . "\" /></p>\n");
}
- if ($ref->{'width'} != -1 && $ref->{'height'} != -1) {
- my $width = $ref->{'width'};
- my $height = $ref->{'height'};
-
- ($width, $height) = Sesse::pr0n::Common::scale_aspect($width, $height, $thumbxres, $thumbyres);
- $imgsz = " width=\"$width\" height=\"$height\"";
+ $r->print(" <input type=\"submit\" value=\"Rotate\" />\n");
+ $r->print(" </form>\n");
+ } elsif ($sel == 1) {
+ $r->print(" <form method=\"post\" action=\"/select\">\n");
+ $r->print(" <input type=\"hidden\" name=\"event\" value=\"$event\" />\n");
+
+ while (my $ref = $q->fetchrow_hashref()) {
+ my $imgsz = "";
+ my $takenby = $ref->{'takenby'};
+ if (defined($ref->{'day'})) {
+ $takenby .= ", " . $ref->{'day'};
+ }
+
+ if ($takenby ne $lastupl) {
+ $lastupl = $takenby;
+ Sesse::pr0n::Templates::print_template($r, "submittedby", { author => $lastupl });
+ }
+ if ($ref->{'width'} != -1 && $ref->{'height'} != -1) {
+ my $width = $ref->{'width'};
+ my $height = $ref->{'height'};
+
+ ($width, $height) = Sesse::pr0n::Common::scale_aspect($width, $height, $thumbxres, $thumbyres);
+ $imgsz = " width=\"$width\" height=\"$height\"";
+ }
+
+ my $filename = $ref->{'filename'};
+ my $uri = $infobox . $filename;
+ if (defined($xres) && defined($yres) && $xres != -1) {
+ $uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
+ }
+
+ my $selected = $ref->{'selected'} ? ' checked="checked"' : '';
+
+ $r->print(" <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
+ $r->print(" <input type=\"checkbox\" name=\"sel-" .
+ $ref->{'id'} . "\"$selected /></p>\n");
}
-
- my $filename = $ref->{'filename'};
- my $uri = $filename;
- if (defined($xres) && defined($yres) && $xres != -1) {
- $uri = "${xres}x$yres/$infobox$filename";
- } elsif (defined($xres) && $xres == -1) {
- $uri = "original/$infobox$filename";
+ $r->print(" <input type=\"submit\" value=\"Select\" />\n");
+ $r->print(" </form>\n");
+ } else {
+ while (my $ref = $q->fetchrow_hashref()) {
+ my $imgsz = "";
+ my $takenby = $ref->{'takenby'};
+ if (defined($ref->{'day'})) {
+ $takenby .= ", " . $ref->{'day'};
+ }
+
+ if ($takenby ne $lastupl) {
+ $r->print(" </p>\n\n") if ($lastupl ne "");
+ $lastupl = $takenby;
+ Sesse::pr0n::Templates::print_template($r, "submittedby", { author => $lastupl });
+ $r->print(" <p>\n");
+ }
+ if ($ref->{'width'} != -1 && $ref->{'height'} != -1) {
+ my $width = $ref->{'width'};
+ my $height = $ref->{'height'};
+
+ ($width, $height) = Sesse::pr0n::Common::scale_aspect($width, $height, $thumbxres, $thumbyres);
+ $imgsz = " width=\"$width\" height=\"$height\"";
+ }
+
+ my $filename = $ref->{'filename'};
+ my $uri = $infobox . $filename;
+ if (defined($xres) && defined($yres) && $xres != -1) {
+ $uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
+ }
+
+ $r->print(" <a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
}
-
- $r->print(" <a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
+ $r->print(" </p>\n");
}
- $r->print(" </p>\n");
- }
- print_nextprev($r, $event, \%settings, \%defsettings);
- Sesse::pr0n::Common::footer($r);
+ print_nextprev($r, $event, \%settings, \%defsettings);
+ Sesse::pr0n::Common::footer($r);
+ }
return Apache2::Const::OK;
}
$r->print('</p>');
}
+
+sub print_fullscreen {
+ my ($r, $event, $settings, $defsettings) = @_;
+
+ chomp (my $title = Sesse::pr0n::Templates::fetch_template($r, 'fullscreen'));
+
+ my %newsettings = %$settings;
+ $newsettings{'fullscreen'} = 1;
+
+ $r->print(" <p>");
+ Sesse::pr0n::Common::print_link($r, $title, "/$event/", \%newsettings, $defsettings);
+ $r->print("</p>\n");
+}
1;