-#!/usr/bin/perl
+#!/usr/bin/perl -w
+
+################################################################################
+# #
+# File: user/fo_view.pl #
+# #
+# Authors: André Malo <nd@o3media.de> #
+# #
+# Description: display the forum main file or a single posting #
+# #
+################################################################################
use strict;
-
-use vars qw($Bin $Shared $Script $t0);
+use vars qw(
+ $Bin
+ $Shared
+ $Script
+ $Config
+);
BEGIN {
- ($Bin) = ($0 =~ /^(.*)\/.*$/)? $1 : '.';
- $Shared = "$Bin/../shared";
- ($Script) = ($0 =~ /^.*\/(.*)$/)? $1 : $0;}
+ my $null = $0; $null =~ s/\\/\//g; # for win :-(
+ $Bin = ($null =~ /^(.*)\/.*$/)? $1 : '.';
+ $Shared = "$Bin/../shared";
+ $Config = "$Bin/config";
+ $Script = ($null =~ /^.*\/(.*)$/)? $1 : $null;
+
+# my $null = $0;
+# $Bin = ($null =~ /^(.*)\/.*$/)? $1 : '.';
+# $Config = "$Bin/../../daten/forum/config";
+# $Shared = "$Bin/../../cgi-shared";
+# $Script = ($null =~ /^.*\/(.*)$/)? $1 : $null;
+}
+
+# setting umask, remove or comment it, if you don't need
+#
+umask 006;
use lib "$Shared";
-#use CGI::Carp qw(fatalsToBrowser);
+use CGI::Carp qw(fatalsToBrowser);
use Conf;
use Conf::Admin;
use Template::Forum;
use Template::Posting;
-use CGI qw(param header);
+use CGI qw(
+ param
+ header
+);
-print header(-type => 'text/html');
+################################################################################
+#
+# Version check
+#
+# last modified:
+# $Date$ (GMT)
+# by $Author$
+#
+sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
-my $conf = read_script_conf ($Bin, $Shared, $Script);
+print header(
+ -type => 'text/html',
+ -expires => '+10m'
+);
-$conf -> {wwwRoot} = 'i:/i_selfhtml/htdocs' unless ($ENV{GATEWAY_INTERFACE} =~ /CGI/);
+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 ("$Bin/".$conf -> {files} -> {adminDefault});
-
-my $forum_file = $conf -> {wwwRoot}.$conf -> {files} -> {forum};
-my $message_path = $conf -> {wwwRoot}.$conf -> {files} -> {messagePath};
-
-#use Lock qw(:ALL);release_file(forum_file);die;
-
-my ($tid, $mid) = (param ($cgi -> {thread}), param ($cgi -> {posting}));
-
-if (defined ($tid) and defined ($mid)) {
- print_posting_as_HTML ($message_path,
- "$Bin/".$show_posting -> {templateFile},
- {assign => $show_posting -> {assign},
- thread => $tid,
- posting => $mid,
- messages => $show_posting -> {messages},
- form => $show_posting -> {form},
- cgi => $cgi,
- tree => $tree
- });}
+
+my $forum_file = $conf -> {files} -> {forum};
+
+# 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,
- "$Bin/".$show_forum -> {templateFile},
- {assign => $show_forum -> {assign},
- adminDefault => $adminDefault,
- cgi => $cgi,
- tree => $tree
- });}
-
-# eos
\ No newline at end of file
+ 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