}
# Fix common error: pr0n.sesse.net/event -> pr0n.sesse.net/event/
- if ($r->uri !~ m#/$#) {
+ if ($r->uri !~ /\/$/) {
$r->headers_out->{'location'} = "/$event/";
return Apache2::Const::REDIRECT;
}
if ($model eq '') {
# no defined model
- $where .= " AND id NOT IN ( SELECT image FROM exif_info WHERE tag='Model' AND TRIM(value)<>'' )";
+ $where .= " AND id NOT IN ( SELECT image FROM exif_info WHERE key='Model' AND TRIM(value)<>'' )";
} else {
- $where .= " AND id IN ( SELECT image FROM exif_info WHERE tag='Model' AND TRIM(value)=$mq )";
+ $where .= " AND id IN ( SELECT image FROM exif_info WHERE key='Model' AND TRIM(value)=$mq )";
}
# This doesn't match 1:1 if there's both lens and lensspec, but it should be OK in practice
if ($lens eq '') {
# no defined lens
- $where .= " AND id NOT IN ( SELECT image FROM exif_info WHERE (tag='Lens' OR tag='LensSpec') AND TRIM(value)<>'' )";
+ $where .= " AND id NOT IN ( SELECT image FROM exif_info WHERE (key='Lens' OR key='LensSpec') AND TRIM(value)<>'' )";
} else {
- $where .= " AND id IN ( SELECT image FROM exif_info WHERE (tag='Lens' OR tag='LensSpec') AND TRIM(value)=$lq )";
+ $where .= " AND id IN ( SELECT image FROM exif_info WHERE (key='Lens' OR key='LensSpec') AND TRIM(value)=$lq )";
}
}
if ($settings{'fullscreen'}) {
$r->content_type("text/html; charset=utf-8");
Sesse::pr0n::Templates::print_template($r, "fullscreen-header", { title => "$name [$event]" });
+
+ my @files = ();
while (my $ref = $q->fetchrow_hashref()) {
- $r->print(" [ \"" . $ref->{'event'} . "\", \"" . $ref->{'filename'} . "\" ],\n");
+ push @files, [ $ref->{'event'}, $ref->{'filename'} ];
+ }
+
+ for my $i (0..$#files) {
+ $r->print(" [ \"" . $files[$i]->[0] . "\", \"" . $files[$i]->[1] . "\" ]");
+ $r->print(",") unless ($i == $#files);
+ $r->print("\n");
}
my %settings_no_fullscreen = %settings;
COUNT(*) AS num
FROM ( SELECT * FROM images WHERE vhost=? $where ) i
LEFT JOIN exif_info model ON i.id=model.image
- LEFT JOIN ( SELECT * FROM exif_info WHERE tag='Lens' ) lens ON i.id=lens.image
- LEFT JOIN ( SELECT * FROM exif_info WHERE tag='LensSpec') lens_spec ON i.id=lens_spec.image
- WHERE model.tag='Model'
+ LEFT JOIN ( SELECT * FROM exif_info WHERE key='Lens' ) lens ON i.id=lens.image
+ LEFT JOIN ( SELECT * FROM exif_info WHERE key='LensSpec') lens_spec ON i.id=lens_spec.image
+ WHERE model.key='Model'
GROUP BY 1,2
ORDER BY 1,2")
or die "Couldn't prepare to find equipment: $!";
for my $e (@equipment) {
my $eqspec = $e->{'model'};
$eqspec .= ', ' . $e->{'lens'} if (defined($e->{'lens'}));
+ $eqspec = HTML::Entities::encode_entities($eqspec);
- my %newsettings = %defsettings;
- $newsettings{'model'} = $e->{'model'};
- $newsettings{'lens'} = defined($e->{'lens'}) ? $e->{'lens'} : '';
+ my %newsettings = %settings;
+
+ my $action;
+ if (defined($model) && defined($lens)) {
+ chomp ($action = Sesse::pr0n::Templates::fetch_template($r, "unfilter"));
+ $newsettings{'model'} = undef;
+ $newsettings{'lens'} = undef;
+ } else {
+ chomp ($action = Sesse::pr0n::Templates::fetch_template($r, "filter"));
+ $newsettings{'model'} = $e->{'model'};
+ $newsettings{'lens'} = defined($e->{'lens'}) ? $e->{'lens'} : '';
+ }
+
my $url = "/$event/" . Sesse::pr0n::Common::get_query_string(\%newsettings, \%defsettings);
# This isn't correct for all languages. Fix if we ever need to care. :-)
if ($e->{'num'} == 1) {
- Sesse::pr0n::Templates::print_template($r, "equipment-item-singular", { eqspec => $eqspec, filterurl => $url });
+ Sesse::pr0n::Templates::print_template($r, "equipment-item-singular", { eqspec => $eqspec, filterurl => $url, action => $action });
} else {
- Sesse::pr0n::Templates::print_template($r, "equipment-item", { eqspec => $eqspec, num => $e->{'num'}, filterurl => $url });
+ Sesse::pr0n::Templates::print_template($r, "equipment-item", { eqspec => $eqspec, num => $e->{'num'}, filterurl => $url, action => $action });
}
}
Sesse::pr0n::Templates::print_template($r, "equipment-end");