summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-03-15 18:00:30 +0100
committerDaniel Friesel <derf@finalrewind.org>2011-03-15 18:00:30 +0100
commitad69fc565fe01e18bca7d3ad975156d6a2c8a604 (patch)
treef7606ab5fd33ada73ba21775d787672636cbd232
parent3574da8815b830efc1317221c1348fd741559dd6 (diff)
Only place lightbox html links when lightbox is enabled
-rw-r--r--Changelog5
-rwxr-xr-xlib/App/Dthumb.pm6
-rw-r--r--lib/App/Dthumb/Data.pm.PL5
-rw-r--r--share/html_lightbox.dthumb2
-rw-r--r--share/html_start.dthumb3
-rwxr-xr-xt/21-app-dthumb.files.t33
l---------t/cmp/index.lightbox1
-rw-r--r--t/cmp/index.names5
-rw-r--r--t/cmp/index.no-lightbox25
-rw-r--r--t/cmp/index.no-names5
10 files changed, 82 insertions, 8 deletions
diff --git a/Changelog b/Changelog
index daf2295..805a4d2 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,8 @@
+git HEAD
+
+ * Do not put lightbox links into HTML when lightbox is disabled
+ ( -> no more 404s for dthumb --no-lightbox)
+
dthumb 0.2 - Fri Mar 04 2011
* Add progressbar, introduces new dependency Time::Progress
diff --git a/lib/App/Dthumb.pm b/lib/App/Dthumb.pm
index 8d71383..f7b6d86 100755
--- a/lib/App/Dthumb.pm
+++ b/lib/App/Dthumb.pm
@@ -146,6 +146,12 @@ sub new {
height => $conf{size} * $conf{spacing} . 'px',
);
+ if ($conf{lightbox}) {
+ $ref->{data}->set_vars(
+ lightbox => $ref->{data}->get('html_lightbox.dthumb'),
+ );
+ }
+
$ref->{html} = $ref->{data}->get('html_start.dthumb');
return bless($ref, $obj);
diff --git a/lib/App/Dthumb/Data.pm.PL b/lib/App/Dthumb/Data.pm.PL
index eaf914e..a0fb4f5 100644
--- a/lib/App/Dthumb/Data.pm.PL
+++ b/lib/App/Dthumb/Data.pm.PL
@@ -103,7 +103,10 @@ B<get> function, dthumb will replace occurences of "<!-- $key -->" or "/* $key
sub set_vars {
my ($self, %vars) = @_;
- $self->{replace} = \%vars;
+
+ while (my ($key, $value) = each(%vars)) {
+ $self->{replace}->{$key} = $value;
+ }
}
diff --git a/share/html_lightbox.dthumb b/share/html_lightbox.dthumb
new file mode 100644
index 0000000..253deda
--- /dev/null
+++ b/share/html_lightbox.dthumb
@@ -0,0 +1,2 @@
+<link rel="stylesheet" type="text/css" href=".dthumb/lightbox.css"/>
+<script type="text/javascript" src=".dthumb/lightbox.js"></script>
diff --git a/share/html_start.dthumb b/share/html_start.dthumb
index 2ffbf55..e273b76 100644
--- a/share/html_start.dthumb
+++ b/share/html_start.dthumb
@@ -5,7 +5,6 @@
<title><!-- $title --></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<link rel="stylesheet" type="text/css" href=".dthumb/main.css"/>
- <link rel="stylesheet" type="text/css" href=".dthumb/lightbox.css"/>
- <script type="text/javascript" src=".dthumb/lightbox.js"></script>
+<!-- $lightbox -->
</head>
<body><div>
diff --git a/t/21-app-dthumb.files.t b/t/21-app-dthumb.files.t
index da2cbbe..83879e9 100755
--- a/t/21-app-dthumb.files.t
+++ b/t/21-app-dthumb.files.t
@@ -9,7 +9,7 @@ use Test::More;
eval "use File::Slurp";
plan skip_all => 'File::Slurp required' if $@;
-plan tests => 12;
+plan tests => 14;
use_ok('App::Dthumb');
@@ -50,6 +50,37 @@ unlink('t/out/index');
+$conf{names} = 1;
+$conf{lightbox} = 1;
+$dthumb = App::Dthumb->new(%conf);
+
+for my $file (qw(one.png two.png)) {
+ $dthumb->create_thumbnail_html($file);
+}
+$dthumb->write_out_html();
+
+is(read_file('t/out/index'), read_file('t/cmp/index.lightbox'),
+ 'create_Thumbnail_html / write_out_html with lightbox = 1');
+
+unlink('t/out/index');
+
+
+
+$conf{lightbox} = 0;
+$dthumb = App::Dthumb->new(%conf);
+
+for my $file (qw(one.png two.png)) {
+ $dthumb->create_thumbnail_html($file);
+}
+$dthumb->write_out_html();
+
+is(read_file('t/out/index'), read_file('t/cmp/index.no-lightbox'),
+ 'create_Thumbnail_html / write_out_html with lightbox = 0');
+
+unlink('t/out/index');
+
+
+
$dthumb = App::Dthumb->new(dir_images => 't/out');
$dthumb->create_files();
diff --git a/t/cmp/index.lightbox b/t/cmp/index.lightbox
new file mode 120000
index 0000000..122ada1
--- /dev/null
+++ b/t/cmp/index.lightbox
@@ -0,0 +1 @@
+index.names \ No newline at end of file
diff --git a/t/cmp/index.names b/t/cmp/index.names
index c682ae1..72e0e94 100644
--- a/t/cmp/index.names
+++ b/t/cmp/index.names
@@ -5,8 +5,9 @@
<title>dthumb</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<link rel="stylesheet" type="text/css" href=".dthumb/main.css"/>
- <link rel="stylesheet" type="text/css" href=".dthumb/lightbox.css"/>
- <script type="text/javascript" src=".dthumb/lightbox.js"></script>
+<link rel="stylesheet" type="text/css" href=".dthumb/lightbox.css"/>
+<script type="text/javascript" src=".dthumb/lightbox.js"></script>
+
</head>
<body><div>
<div class="image-container">
diff --git a/t/cmp/index.no-lightbox b/t/cmp/index.no-lightbox
new file mode 100644
index 0000000..93869ca
--- /dev/null
+++ b/t/cmp/index.no-lightbox
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <title>dthumb</title>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
+ <link rel="stylesheet" type="text/css" href=".dthumb/main.css"/>
+<!-- $lightbox -->
+</head>
+<body><div>
+<div class="image-container">
+ <a rel="lightbox" href="one.png" title="one.png">
+ <img src="t/imgdir/.thumbs/one.png" alt="one.png" /></a>
+ <br />
+ <a style="text-decoration: none;" href="one.png">one.png</a>
+</div>
+<div class="image-container">
+ <a rel="lightbox" href="two.png" title="two.png">
+ <img src="t/imgdir/.thumbs/two.png" alt="two.png" /></a>
+ <br />
+ <a style="text-decoration: none;" href="two.png">two.png</a>
+</div>
+</div>
+</body>
+</html>
diff --git a/t/cmp/index.no-names b/t/cmp/index.no-names
index 5022b19..cdc6311 100644
--- a/t/cmp/index.no-names
+++ b/t/cmp/index.no-names
@@ -5,8 +5,9 @@
<title>dthumb</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<link rel="stylesheet" type="text/css" href=".dthumb/main.css"/>
- <link rel="stylesheet" type="text/css" href=".dthumb/lightbox.css"/>
- <script type="text/javascript" src=".dthumb/lightbox.js"></script>
+<link rel="stylesheet" type="text/css" href=".dthumb/lightbox.css"/>
+<script type="text/javascript" src=".dthumb/lightbox.js"></script>
+
</head>
<body><div>
<div class="image-container">