]> bicyclesonthemoon.info Git - ott/bsta/blobdiff - viewer.1.pl
preload previous page / frame
[ott/bsta] / viewer.1.pl
index 24a72b49812853599d9dfda7ef0b8a2341224f42..84a26bfb016434960ce793eb6f712a48dc48f78c 100644 (file)
@@ -63,6 +63,7 @@ srand ($time-$$);
 my %http;
 my %cgi;
 my %frame_data;
+my %prev_frame_data;
 my %next_frame_data;
 my %default;
 my %settings;
@@ -74,6 +75,7 @@ my %words_data;
 my $method;
 my $frame;
 my $frame_data_path;
+my $prev_frame_data_path;
 my $next_frame_data_path;
 my $password;
 my $password_ok;
@@ -231,13 +233,6 @@ else {
        $state{'state'} = STATE->{'inactive'};
 }
 
-$next_frame_data_path = join_path(PATH_SEPARATOR(), DATA_PATH(), $frame+1);
-%next_frame_data = read_data_file($next_frame_data_path);
-
-# apply defaults
-%frame_data      = merge_settings(\%default,      \%frame_data);
-%next_frame_data = merge_settings(\%default, \%next_frame_data);
-
 $timer   = int($state{'nextong'}) - $time;
 $ongtime = int($state{'ongtime'});
 if($ongtime == 0) {
@@ -269,6 +264,16 @@ if (
                )
        ) {
        $access = 1;
+       if ($frame > 0) {
+               $prev_frame_data_path = join_path(PATH_SEPARATOR(), DATA_PATH(), $frame-1);
+               %prev_frame_data = read_data_file($prev_frame_data_path);
+       }
+       $next_frame_data_path = join_path(PATH_SEPARATOR(), DATA_PATH(), $frame+1);
+       %next_frame_data = read_data_file($next_frame_data_path);
+       
+       %frame_data      = merge_settings(\%default,      \%frame_data);
+       %prev_frame_data = merge_settings(\%default, \%prev_frame_data);
+       %next_frame_data = merge_settings(\%default, \%next_frame_data);
 }
 else {
        $access = 0;
@@ -318,6 +323,7 @@ print_viewer_page (
        \%state,
        \%settings,
        \%frame_data,
-       \%next_frame_data,
+       $access ? \%prev_frame_data : \%frame_data,
+       $access ? \%next_frame_data : \%frame_data,
        \%words_data,
 );