X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/f247cc770243a474bbba7845094047e0995b9746..69cc2ea1cf06c310ec4079e301e360f78802c34b:/selfforum-cgi/user/fo_view.pl diff --git a/selfforum-cgi/user/fo_view.pl b/selfforum-cgi/user/fo_view.pl index ad74b50..6cd424d 100644 --- a/selfforum-cgi/user/fo_view.pl +++ b/selfforum-cgi/user/fo_view.pl @@ -1,64 +1,130 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w + +################################################################################ +# # +# File: user/fo_view.pl # +# # +# Authors: André Malo # +# # +# 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, - adminDefault => $adminDefault, - 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