1 # HighSlide JS Theme for MJ's Photo Gallery
2 # (c) 2012 Martin Mares <mj@ucw.cz>; GPL'ed
4 # CAVEAT: highslide/highslide.config.js contains an absolute URL path
5 # to other highslide files.
7 package UCW::Gallery::Web::HighSlide;
13 use UCW::Gallery::Web;
15 our @ISA = qw(UCW::Gallery::Web);
17 my $theme_name = "plain";
27 return $self->get('ThemeUrlPrefix') . $theme_name;
30 sub theme_head_extras($) {
32 my $tdir = $self->theme_dir;
33 my $hsdir = $self->get('ThemeUrlPrefix') . "highslide";
35 <link rel=stylesheet href='$tdir/style.css' type='text/css' media=all>
36 <script type="text/javascript" src="$hsdir/highslide-with-gallery.js"></script>
37 <script type="text/javascript" src="$hsdir/highslide.config.js" charset="utf-8"></script>
38 <link rel="stylesheet" type="text/css" href="$hsdir/highslide.css">
40 <link rel="stylesheet" type="text/css" href="$hsdir/highslide-ie6.css">
42 <style type="text/css">
43 .brum { border: 1px solid green; }
48 sub show_links($$$$) {
49 my ($self, $prev, $up, $next) = @_;
50 my $theme = $self->theme_dir;
51 print "<p class=parent>";
52 print "<span class=back style='width: ${navw}px; height: ${navh}px'>";
53 print "<a href='$prev'><img src='$theme/prev.png' width=${navw} height=${navh} alt='Back'></a>" if $prev ne "";
55 printf "<span class=fwd style='width: ${navw}px; height: ${navh}px'>";
56 printf "<a href='$next'><img src='$theme/next.png' width=${navw} height=${navh} alt='Forward'></a>" if $next ne "";
58 printf "<a href='$up'><img src='$theme/back.png' width=${navw} height=${navh} alt='Up'></a>" if $up ne "";
61 sub show_pre_thumbs($) {
63 print "<div class='highslide-gallery'>\n\n";
64 $self->{hs_thumb_counter} = 0;
67 sub show_post_thumbs($) {
73 my ($self, $meta, $photo_id, $click_url) = @_;
74 my $theme = $self->theme_dir;
75 my $m = $meta->{photo}->{$photo_id};
76 my $annot = UCW::CGI::html_escape($m->{title});
77 my $tf = $self->{thumb_fmt};
78 my $tm = $meta->{thumb}->{$tf}->{$photo_id} or die "No thumbnails for format $tf found!\n";
81 my $thumb = $self->get('ThumbUrlPrefix') . "$tf/$photo_id.jpg";
82 my $ml = int(($box_w - $tw)/2);
83 my $mr = $box_w - $tw - $ml;
84 my $mt = int(($box_h - $th)/2);
85 my $mb = $box_h - $th - $mt;
86 # HighSlide requires title either for all images, or for none
87 my $tit = " title=\"$annot\"";
88 my $aid = $self->{hs_thumb_counter}++ ? "" : " id=thumb1";
89 print "<span style='border: 1px solid green; padding: ${mt}px ${mr}px ${mb}px ${ml}px'>\n";
90 print "<a$aid href='$click_url' class=highslide onclick='return hs.expand(this)'>";
91 print "<img src='$thumb' width=$tw height=$th alt='Photo'$tit></a>\n";
96 my ($class, $gal) = @_;
97 my $self = $class->SUPER::attach($gal);
98 $self->{thumb_fmt} = $gal->require_thumbnails($thumb_w, $thumb_h);