X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=gal2%2FUCW%2FGallery.pm;h=f0a1e97ccb01cd11f69f94793d4cf481ab6d084a;hb=a6d0d32eec237d41a55b9e54b88969d156c3458f;hp=ad0f35dac944980b259c4cbc1666a9e491e3fbc0;hpb=929e3ca5d5af812fe382abe5bd88ab306a3b496a;p=gallery.git diff --git a/gal2/UCW/Gallery.pm b/gal2/UCW/Gallery.pm index ad0f35d..f0a1e97 100644 --- a/gal2/UCW/Gallery.pm +++ b/gal2/UCW/Gallery.pm @@ -6,6 +6,8 @@ package UCW::Gallery; use strict; use warnings; +use Storable; + BEGIN { # Standard Perl module stuff use Exporter(); @@ -18,27 +20,31 @@ BEGIN { } our %CF; -our $th; BEGIN { - $CF{"Title"} = "An Unnamed Gallery", - $CF{"HeadExtras"} = "", - $CF{"TopExtras"} = "", - $CF{"BotExtras"} = "", - $CF{"ParentURL"} = "../", - $CF{"BackURL"} = "", - $CF{"FwdURL"} = "", - $CF{"ImageSubpages"} = 1, - $CF{"AllowArchives"} = 1, - $CF{"PhotoUrlPrefix"} = "", - $CF{"ThumbUrlPrefix"} = "", - $CF{"MetaDataDir"} = ".", - $CF{"PhotoDir"} = ".", + # FIXME: Check config + $CF{'Title'} = 'An Unnamed Gallery', + $CF{'HeadExtras'} = "", + $CF{'TopExtras'} = "", + $CF{'BotExtras'} = "", + $CF{'ParentURL'} = '../', + $CF{'BackURL'} = "", + $CF{'FwdURL'} = "", + $CF{'ImageSubpages'} = 1, + $CF{'AllowArchives'} = 1, + $CF{'PhotoUrlPrefix'} = "", + $CF{'ThumbUrlPrefix'} = "", + $CF{'MetaDataDir'} = '.', + $CF{'PhotoDir'} = '.', + # FIXME: Who sets GalDir? - $CF{'ScanDefaultTransform'} = 'n'; + $CF{'ScanDefaultTransform'} = 's'; $CF{'OrigDir'} = '.'; $CF{'PhotoDir'} = 'photo'; - $CF{"CacheDir"} = "cache", + $CF{'CacheDir'} = 'cache', + $CF{'PhotoMaxWidth'} = 1024, + $CF{'PhotoMaxHeight'} = 1024, + $CF{'ThumbFormats'} = {}, } sub LoadConfig() { @@ -60,11 +66,17 @@ sub SetOptions(@) { $CF{$o} = $v; if ($o eq "Theme") { require $CF{"GalDir"} . "/$v/theme.pm"; - Gallery::Theme::Init($CF{"GalURL"} . "/$v"); + UCW::Gallery::Theme::Init($CF{"GalURL"} . "/$v"); } } } +sub RequireThumbnails($$) { + my ($w, $h) = @_; + my $fmt = "${w}x${h}"; + $CF{'ThumbFormats'}->{$fmt} = 1; +} + sub WriteList($$) { my ($file, $images) = @_; open LIST, '>', "$file.new" or die "Cannot create $file.new: $!\n"; @@ -99,4 +111,20 @@ sub ReadList($) { return \@images; } +sub WriteMeta($$) { + my ($file, $meta) = @_; + open META, '>', "$file.new" or die "Cannot create $file.new: $!\n"; + Storable::nstore_fd($meta, \*META); + close META; + rename "$file.new", $file or die "Cannot rename $file.new to $file: $!\n"; +} + +sub ReadMeta($) { + my ($file) = @_; + open META, '<', $file or die "Cannot read $file: $!\n"; + my $meta = Storable::fd_retrieve(\*META) or die "Cannot parse $file\n"; + close META; + return $meta; +} + 1;