]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/user/fo_view.pl
Admin.pm: hide_posting()/recover_posting(): thread and forum XML files are now locked...
[selfforum.git] / selfforum-cgi / user / fo_view.pl
index e59d16efd8d8293b862de5005f80967183453dbe..6cd424d223eafa7a149ef97a8c303e72345c87b7 100644 (file)
@@ -4,7 +4,7 @@
 #                                                                              #
 # File:        user/fo_view.pl                                                 #
 #                                                                              #
-# Authors:     AndrĂ© Malo <nd@o3media.de>, 2001-04-01                          #
+# Authors:     AndrĂ© Malo <nd@o3media.de>                                      #
 #                                                                              #
 # Description: display the forum main file or a single posting                 #
 #                                                                              #
@@ -16,7 +16,6 @@ use vars qw(
   $Shared
   $Script
   $Config
-  $VERSION
 );
 
 BEGIN {
@@ -50,9 +49,15 @@ use CGI qw(
   header
 );
 
+################################################################################
+#
 # Version check
 #
-$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+# last modified:
+#    $Date$ (GMT)
+# by $Author$
+#
+sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
 
 print header(
   -type    => 'text/html',
@@ -63,46 +68,63 @@ my $conf = read_script_conf ($Config, $Shared, $Script);
 
 my $show = $conf -> {show};
 my $show_forum = $show -> {Forum};
-my $show_posting = $show -> {Posting};
-my $cgi = $show -> {assign} -> {cgi};
-my $tree = $show -> {assign} -> {thread};
-my $adminDefault = read_admin_conf ($conf -> {files} -> {adminDefault});
 
 my $forum_file = $conf -> {files} -> {forum};
-my $message_path = $conf -> {files} -> {messagePath};
-
-my ($tid, $mid) = (param ($cgi -> {thread}), param ($cgi -> {posting}));
-
-if (defined ($tid) and defined ($mid)) {
-  print_posting_as_HTML (
-    $message_path,
-    $show_posting -> {templateFile},
-    { assign       => $show_posting -> {assign},
-      thread       => $tid,
-      posting      => $mid,
-      adminDefault => $adminDefault,
-      messages     => $conf -> {template} -> {messages},
-      form         => $show_posting -> {form},
-      cgi          => $cgi,
-      tree         => $tree,
-      firsttime    => 1,
-      cachepath    => $conf -> {files} -> {cachePath}
-    }
+
+# check on closed forum
+#
+my $main = new Lock($forum_file);
+if ($main -> masterlocked) {
+
+  my $template = new Template $show_forum -> {templateFile};
+
+  $template -> printscrap (
+    $show_forum -> {assign} -> {errorDoc},
+    { $show_forum -> {assign} -> {errorText} => $template -> insert ($show_forum -> {assign} -> {'notAvailable'}) }
   );
 }
 
 else {
-  print_forum_as_HTML (
-    $forum_file,
-    $show_forum -> {templateFile},
-    { assign       => $show_forum -> {assign},
-      adminDefault => $adminDefault,
-      cgi          => $cgi,
-      tree         => $tree
-    }
-  );
+  my $cgi = $show -> {assign} -> {cgi};
+  my $tree = $show -> {assign} -> {thread};
+  my $adminDefault = read_admin_conf ($conf -> {files} -> {adminDefault});
+
+  my ($tid, $mid) = (param ($cgi -> {thread}), param ($cgi -> {posting}));
+
+  if (defined ($tid) and defined ($mid)) {
+    my $show_posting = $show -> {Posting};
+
+    print_posting_as_HTML (
+      $conf -> {files} -> {messagePath},
+      $show_posting -> {templateFile},
+      { assign       => $show_posting -> {assign},
+        thread       => $tid,
+        posting      => $mid,
+        adminDefault => $adminDefault,
+        messages     => $conf -> {template} -> {messages},
+        form         => $show_posting -> {form},
+        cgi          => $cgi,
+        tree         => $tree,
+        firsttime    => 1,
+        cachepath    => $conf -> {files} -> {cachePath}
+      }
+    );
+  }
+
+  else {
+    print_forum_as_HTML (
+      $forum_file,
+      $show_forum -> {templateFile},
+      { assign       => $show_forum -> {assign},
+        adminDefault => $adminDefault,
+        cgi          => $cgi,
+        tree         => $tree
+      }
+    );
+  }
 }
 
+
 #
 #
 ### end of fo_view.pl ##########################################################
\ No newline at end of file

patrick-canterino.de